Atlas / Skills / capsize-games / headlesscode

headlesscodeBLOCK

skills/capsize-games/headlesscode

Coding-agent harness with recursive self-improvement (RSI), parallel Git worktree workers, skills and MCP extensions, and CLI and HTTP interfaces.

Verdict
BLOCK
Grade
F
Trust score
50 /100
Version
—
Hosts
2 documented
License
Apache-2.0
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/Capsize-Games/headlesscode/actions/workflows/ci.yml) [](https://www.npmjs.com/package/headlesscode) [](https://nodejs.org/) License: Apache-2.0

HeadlessCode is a coding-agent harness with a CLI, HTTP interfaces, and recursive self-improvement (RSI). Run one task directly, launch parallel workers in Git worktrees, or use the NVIDIA OpenShell provider for sandboxed sessions. The bounded RSI harness can inspect and improve a target project, including HeadlessCode itself, with independent evaluation of candidate changes.

Security controls

HeadlessCode's controls map to the seven principles in Satya Nadella's Models as Insider Risks in the Super Intelligence Era.

Read from source at commit 2aead0f2959eOBSERVED · 2026-10-14
02

Install

Commands as the repository documents them. They are shown, not run.

npm install          # tsx + typescript + deps; no build step needed
npm install -g headlesscode
git clone https://github.com/Capsize-Games/headlesscode.git
npm install
git clone <repo-url> /opt/headlesscode
git clone <repo-url> /opt/my-repo
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
04

Trust audit

BLOCKgrade F · trust 50/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (8 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/rsi/models.ts:69
const result = await exec(command, { cwd: outputDir, timeout: this.timeoutMs, maxBuffer: 16 * 1024 * 1024 })
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/cli.ts:423
".env,.env.*,*.pem,*.key,id_rsa*"
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/codesearch/lexical.ts:43
/^id_rsa$/i,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/codesearch/lexical.ts:44
/^id_ed25519$/i,
Why it matters. touches a credential store
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
scripts/e2e-permissions/run.sh:44
DENIED_COMMAND="curl http://169.254.169.254/latest/meta-data/"
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMInventory / provenance · inv.binary · CWE-1104
src/orchestrator/log-analysis.ts
log-analysis.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
src/rsi/__tests__/operations-monitor.test.ts:251
const sentinel = "postgres://monitor-lock-secret:[email protected]/private?token=sentinel-token"
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
scripts/rsi-benchmark/self-hosted-harness-smoke.ts:125
apiKey: "mock-only-not-a-provider-key",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
src/watcher/__tests__/claims.test.ts:98
token: "synthetic-test-token",
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
docs/github-app-setup.md:70
`GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY----- ..."`
MEDIUMInventory / provenance · skill.no_skill_md · CWE-1104
Why it matters. no SKILL.md at the audited path
Fix. a skill without its instruction file cannot be reviewed as one
LOWInventory / provenance · inv.hidden_file · CWE-1104
.roomodes
.roomodes
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.suspicious_name · CWE-1104
src/rsi/__tests__/worker-payload.test.ts
worker-payload.test.ts
Why it matters. member named after an attack tool
Fix. remove or justify
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/tools/__tests__/browser-action.test.ts:152
const executor = exec(ws)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/tools/__tests__/browser-action.test.ts:196
const executor = exec(ws)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/tools/__tests__/browser-action.test.ts:249
const executor = exec(ws)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/tools/__tests__/browser-action.test.ts:286
const executor = exec(ws)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/dashboard/session-launch.ts:106
const hash = createHash("sha1").update(resolvedRepo).digest("hex").slice(0, 8)
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/tool-symlink-escape.mjs:10
const files = [{"path":"src/tools/__tests__/path-safety.test.ts","source":"/**\n * Unit tests for the symlink-escape layer of the path-safety guard\n * (src/tools/executor.ts — resolveWithinWorkspace
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/dashboard/__tests__/file-browser-permissions.test.ts:220
await fs.writeFile(path.join(repo, "sub", "id_rsa"), "not-a-real-key", "utf-8")
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/artifact-deferral-bound.mjs:10
const files = [{"path":"src/engine/__tests__/loop.test.ts","source":"/**\n * Loop + executor tests for the Phase 1 headless harness.\n *\n * Plain assert-based script (no test framework, no network, n
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/edit-insertion-guard.mjs:10
const files = [{"path":"src/tools/__tests__/edit_file.test.ts","source":"/**\n * Unit tests for the headless `edit_file` tool handler\n * (src/tools/executor.ts's editFileHandler). Plain assert-based
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/malformed-child-completion.mjs:10
const files = [{"path":"src/engine/__tests__/new-task.test.ts","source":"/**\n * Recursive task decomposition (`new_task`) tests.\n *\n * The headless-native design: `new_task` is implemented as a SYN
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/qa-failure-rework.mjs:10
const files = [{"path":"src/orchestrator/__tests__/cli.test.ts","source":"/**\n * Unit tests for src/orchestrator/cli.ts — the rework loop (plans/rework-loop.md):\n * a review \"finding\" verdict is t
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
fixtures/rsi-benchmark/verifiers/qa-pass-marker.mjs:10
const files = [{"path":"src/qa/__tests__/qa.test.ts","source":"/**\n * Unit tests for src/qa/qa.ts — QA verdict/evidence parsing from the QA\n * session's final report. Plain assert-based, no network.

Gates applied: no_behavioural_pass.

Audited 2026-10-14 · audit v0.4.1 · source sha 2aead0f2959efull audit observations/trust-audit/skill/capsize-games__headlesscode.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-142aead0f2959eBLOCKF50first audit
06

Questions

What does the headlesscode skill do?

Coding-agent harness with recursive self-improvement (RSI), parallel Git worktree workers, skills and MCP extensions, and CLI and HTTP interfaces.

Is headlesscode safe to install?

No — not without reading the findings first. The audit graded it F (50/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can headlesscode access on my machine?

The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does headlesscode work with?

Its documentation mentions claude-code and codex. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (2aead0f2959e), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement