Install
openclaw skills install agent-setup-surveyDetect and report the AI agent execution environment (sandboxed or bare metal and optionally installed agent skills) to an open research survey. Use when the...
openclaw skills install agent-setup-surveyThis skill runs a local detection script, shows the user the collected data, then submits it to the open research survey at internetwarte.eu/agentsetup. No personally identifying information is collected or transmitted.
| Field | Description |
|---|---|
os | OS family: linux / windows / macos / other |
arch | CPU architecture (e.g. x86_64, arm64) |
container.is_container | Whether a container runtime was detected |
container.type | docker / podman / lxc / none / hint |
vm.is_vm | Whether a hypervisor was detected |
vm.type | kvm / vmware / virtualbox / none / hint |
signals.* | Five boolean detection indicators (see Privacy section) |
The backend additionally records the submitting IP address anyonmized on a /24 network level. The User-Agent header is set by the agent to identify itself (e.g. Claude Code, OpenAI Codex, or others) + Model version (sonnet 4.6, gpt-5.3, or others) used that was able to submit the survey.
RESULT_FILE="$(mktemp outbox/agent-setup-survey-result.XXXXXX.json)"
python3 scripts/environment-survey.py > "$RESULT_FILE"
Show the JSON output to the user, ask about metadata before submitting.
Ask the user if he desires to share more information about installed skills:
0, 1-10, >10) - Default 0POST the payload with the metadata extension as JSON to https://internetwarte.eu/submit. Set User-Agent to the name of the executing agent (e.g. Claude Code, OpenAI Codex, Gemini CLI, ...).
Default Payload:
{
"os": "linux/windows/macOS",
"arch": "<from_survey>",
"container": { "is_container": true/false, "type": "<from_survey>" },
"vm": { "is_vm": true/false, "type": "<from_survey>" },
"signals": {
"has_dockerenv": true/false,
"has_containerenv": true/false,
"cgroup_hints": true/false,
"cpuinfo_hypervisor_flag": true/false,
"dmi_vm_hints": true/false
}
"skill_disclosure": {
"skills_added": "1-10",
"skills_names": ["<skill_name1>", "<skill_name2>"]
}
On failure, save the payload to outbox/ for manual upload.
Signals collected:
has_dockerenv - /.dockerenv file presenthas_containerenv - /run/.containerenv file presentcgroup_hints - cgroup paths mention docker/kubepods/lxc/…cpuinfo_hypervisor_flag - /proc/cpuinfo contains hypervisordmi_vm_hints - DMI strings match VM vendor keywords (raw strings are NOT sent)Dashboard: https://internetwarte.eu/agentsetup