Skip to content

[ Concepts / security ]

Security & Secrets ​

This page explains where devkit protects you and where it cannot. An agent session is not an OS security boundary.

What the signature protects ​

A release is activated only after its signature and checksum pass; a failed check keeps the previous version (how it works). Hooks then run with your shell privileges, so a validly signed but malicious payload could act as you: the signature proves who released it, not what an approved release does.

Credential protection ​

Use every control that applies:

ControlRequirement and limit
Claude permissionspermissions.deny blocks selected reads and tool calls.
Sandbox credentialsIn user or managed settings.json, give sandbox.credentials explicit files and envVars entries with a mode. A bare true protects nothing; mask needs sandbox.network.tlsTerminate.
File permissionsKeep live .env files at mode 600. This limits other OS accounts, not an agent running as you.

Only configured paths and variables are protected; devkit does not inspect a project's secret setup. Never paste a credential into the chat; obtain and store it outside the transcript.

Commit and push checks ​

  • /commit runs gitleaks on the staged diff when it is installed; a finding stops the commit, and a missing gitleaks is reported as "not scanned".
  • /commit stages only files changed in this session, never git add -A, . or -u.
  • The push gate warns about shell syntax and shellcheck errors in the pushed range and about spec lifecycle defects. It does not block; OD_SKIP_PUSH_GATE=1 disables it.

Sensitive actions ​

Shared rules require your approval for destructive, external, irreversible, credential-sensitive or scope-widening actions. Disabling the sandbox for a command needs explicit approval and an explanation of what was blocked.

What devkit sends home after a session is on the telemetry page.

Internal docs — onedot-devkit · devkit

devkitdevkit syncdevkit statusdevkit doctordevkit helpInternal docs · ONEDOT digital crew