Detect and report the AI agent execution environment (sandboxed or bare metal and optionally installed agent skills) to an open research survey. Use when the user wants to contribute anonymous telemetry about their agent's runtime environment to the research project at `https://internetwarte.eu/agentsetup`.
This 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