Skep isolates coding agents, independently verifies their work, and gives you the final say before anything lands in your repository.
Local-firstOpen sourceNo cloud required
THE SKEP SECURITY MODEL
Sandbox
The agent runs in an isolated worktree with controlled filesystem and network access.
Execute
The agent works, runs commands, and produces changes plus an event log.
Verify
Skep re-runs the project's pinned verify command on a fresh copy, independently.
Approve
You review the patch and evidence. Only then does it land on a dedicated branch.
The agent cannot modify your repository, push, or bypass approval.
1. Sandboxing
Everything the agent can do is intentionally constrained.
Skep uses OS-level sandboxing to limit what the agent can reach. Each run happens in a disposable Git worktree, isolated from your main repository.
The sandbox mounts the root filesystem read-only and binds back only the intended writable roots: the workspace, the results directory, and task-specific temp locations.
WHAT'S RESTRICTED
Writes outside the worktreeGit push, pull, and fetchOutbound network by defaultEnvironment secrets and tokensModifying Skep's own configurationCommitting to your repository
WHAT'S ALLOWED
Read and write inside the worktreeRun allowlisted commandsUse approved tools and MCP serversNetwork to approved domainsWrite to the results directoryRequest more permission at a gate
Sandbox backends: macOS Seatbelt (sandbox-exec) / Linux bubblewrap (bwrap). Reads are not fully confined — the env allowlist closes secret exposure.
2. Independent verification
Verify every claim. Independently.
Skep never trusts the agent's claim. It runs the project's pinned verification command on a clean copy of the worktree.
$ uv run pytest
========== test session starts ==========
platform linux -- Python 3.12
collected 142 items
.........................[100%]142 passed in 18.4s=========== 142 passed ===========
Fresh copyPinned commandReal results
3. Approval gates
You control what happens next.
Skep asks for permission when needed and before landing changes. Allow once, remember, or deny.
Permission requestednetwork.access
registry.npmjs.org
Install the package pinned in package-lock.json
Scope: this run only
npm install axios@1.6.7
4. Git protections
Your repository stays safe. Always.
Workers cannot push, pull, fetch, or change your Git history — no permission grant overrides that. Approved work lands on a dedicated branch, never on main.
Cannot pushCannot pull or fetchCannot checkout or switch branchesCannot commit to your repositoryCannot modify .git or Git configApproved patch lands on skep/<id>
mainskep/7d31f9c2
Security limitations
Skep makes agents safer. It's not a silver bullet.
No system is perfect. These are the limits, stated plainly.
Agents still make logic mistakes
Verification helps, but it isn't foolproof.
Local machine risks remain
Malware or a compromised OS is out of scope.
Dependencies can be malicious
Skep cannot control what you install.
Secrets in your repo are still at risk
Don't commit secrets. Use env vars.
Verification command trust
If your command lies, Skep can't detect it.
Human decisions matter
Approval is the final safety net.
Report a security issue
Skep is a security-posture project — a hole in any layer is a security bug even if no data was touched. Please report privately rather than opening a public issue.
Include your skep version (skep --version), sandbox backend (skep doctor), the boundary affected, and reproduction steps. You'll get an acknowledgment within a week.