Mrjwj34

Nullkey — AI skill for Claude Code

AI community

Desktop-grade secure sandbox for AI coding agents.

How to install Nullkey

This entry records only its repository, not the path inside it, so there is no exact command to give. Open Mrjwj34/nullkey and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Nullkey does

Desktop-grade secure sandbox for AI coding agents. Keys never enter the sandbox.

Alternatives in AI

  • Coding Agent Template — Multi-agent AI coding platform powered by Vercel Sandbox and AI Gateway 1.8k ★
  • TokenTracker — Local-first AI token usage & cost tracker for 31 coding tools incl 1.4k ★
  • Klaatcode — Open-source AI coding agent for the terminal 357 ★

README

Nullkey

桌面级 Agent 安全沙箱。API key、OAuth token、password 永远不进入沙箱。

A desktop-grade secure sandbox for AI coding agents. Credentials never enter the sandbox.

**Status:** design phase · macOS Apple Silicon · 3-day MVP

为什么

Agent session 会以很多方式离开本机:transcript、日志、环境变量、MCP 配置、工作区文件、崩溃转储、截图。只要真实凭证在沙箱里,任何一次 session 泄漏都可能变成 key 泄漏。

Nullkey 把沙箱变成 **zero-secret zone**:

  • 沙箱里没有 API key、password、OAuth token、SSH key。
  • 沙箱里的 harness / MCP 配置只有一枚 per-sandbox token(可撤销、只在当前沙箱有效)。
  • 真实凭证只在宿主机:macOS Keychain + Nullkey daemon。
  • 模型调用、MCP 调用、私有 git 都经过宿主侧 gateway,由 gateway 在沙箱外注入凭证。
  • 沙箱默认走 filtered 网络:未认证流量经 egress proxy,认证流量经 gateway。
  • 宿主机可通过 service tunnel 打开沙箱内 WebUI/preview;Agent 产物在 Artifacts 页审查。

**即使整个沙箱状态被拿走,也拿不到真实凭证。**

轻量优先

默认 runtime **不使用虚拟机**:

  • 原生 macOS 进程沙箱(Seatbelt / sandbox-exec)+ 独立 workspace。
  • 直接运行 Codex CLI、Claude Code、DSH 等 macOS 原生 harness。
  • 默认界面是 SSH-client 风格的终端页(xterm.js + PTY),里面跑 harness 自己的 TUI;不是虚拟桌面。
  • 冷启动目标 < 1s,daemon 常驻内存 < 80MB,单沙箱额外开销 < 40MB。
  • 虚拟桌面/桌面应用是 可选后端,只在打开时启动;需要虚拟化,单独计量,不计入默认 SLO。

怎么工作

flowchart LR
  subgraph HOST["宿主机 · TCB(可信)"]
    GUI["GUI / Terminal 页"]
    D["nullkeyd
API / 调度 / 审计"] KC[("macOS Keychain")] MG["Model Gateway"] MCPG["MCP Gateway"] OA["OAuth Broker"] EP["Egress Proxy
allowlist"] ST[("Workspace / State / Cache")] GUI --> D D --> KC D --> MG D --> MCPG D --> OA D --> EP D --> ST end subgraph SBX["Native sandbox · 无 VM(Seatbelt)"] H["Codex CLI / Claude Code / DSH
TUI"] PTY["PTY"] H --> PTY end H -->|"localhost: gateway"| D H -->|"localhost: proxy"| EP PTY -->|"WebSocket"| GUI MG -->|"real key"| UP["模型 API"] MCPG -->|"real key"| MS["MCP Server
宿主侧"] OA -->|"OAuth token"| UP EP -->|"allowlist"| NET["Internet"]

一次模型调用:

Codex TUI → base_url=http://127.0.0.1:/openai
          → Authorization: Bearer 
          → Gateway 校验 token,换成真实