Quantum-inspired keyring for AI coding agents. Secure secrets with superposition, entanglement, tunneling, and teleportation — CLI + 44 MCP tools.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 44 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
agent_forget
-
agent_recall
-
agent_remember
-
agent_scan
-
analyze_secrets
-
audit_log
-
check_policy
-
check_project
-
ci_validate_secrets
-
delete_secret
-
detect_anomalies
-
detect_environment
-
disentangle_secrets
-
entangle_secrets
-
env_generate
-
exec_with_secrets
-
export_audit
-
export_secrets
-
generate_secret
-
get_policy_summary
-
get_project_context
-
get_secret
-
has_secret
-
health_check
-
import_dotenv
-
inspect_secret
-
lint_files
-
list_hooks
-
list_providers
-
list_secrets
-
register_hook
-
remove_hook
-
rotate_secret
-
scan_codebase_for_secrets
-
set_secret
-
status_dashboard
-
teleport_pack
-
teleport_unpack
-
tunnel_create
-
tunnel_destroy
-
tunnel_list
-
tunnel_read
-
validate_secret
-
verify_audit_chain
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 1227290 · analyzer v33 · 6d ago
skills & prompt files 11
- agent-rules I4cTime-q-ring-1227290/claude-code-plugin/CLAUDE.md
- skill I4cTime-q-ring-1227290/claude-code-plugin/skills/exec-with-secrets/SKILL.md
- skill I4cTime-q-ring-1227290/claude-code-plugin/skills/project-onboarding/SKILL.md
- skill I4cTime-q-ring-1227290/claude-code-plugin/skills/secret-management/SKILL.md
- skill I4cTime-q-ring-1227290/claude-code-plugin/skills/secret-rotation/SKILL.md
- skill I4cTime-q-ring-1227290/claude-code-plugin/skills/secret-scanning/SKILL.md
- skill I4cTime-q-ring-1227290/cursor-plugin/skills/exec-with-secrets/SKILL.md
- skill I4cTime-q-ring-1227290/cursor-plugin/skills/project-onboarding/SKILL.md
- skill I4cTime-q-ring-1227290/cursor-plugin/skills/secret-management/SKILL.md
- skill I4cTime-q-ring-1227290/cursor-plugin/skills/secret-rotation/SKILL.md
- skill I4cTime-q-ring-1227290/cursor-plugin/skills/secret-scanning/SKILL.md
danger signals3
- suspicious endpoint 1.1.1.1 I4cTime-q-ring-1227290/src/__tests__/core/ssrf-jit.test.ts :44
expect(checkJitHttpProvisionUrl("https://1.1.1.1/path")).toBeNull(); - suspicious endpoint 8.8.8.8 I4cTime-q-ring-1227290/src/__tests__/core/ssrf.test.ts :73
const result = await checkSSRF("https://8.8.8.8/test"); - suspicious endpoint 1.1.1.1 I4cTime-q-ring-1227290/src/__tests__/core/ssrf.test.ts :97
expect(checkSSRFSync("https://1.1.1.1/path")).toBeNull();
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 137
filesystem 50
- fs (weak) I4cTime-q-ring-1227290/scripts/append-changelog-to-publish-log.mjs :5
import { readFileSync, appendFileSync, existsSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/build-dashboard-client.mjs :17
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/build-mcpb.mjs :20
import { mkdirSync, rmSync, writeFileSync, copyFileSync, readFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/check-plugin-parity.mjs :12
import { readFileSync, readdirSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/plugin-generate-skills.mjs :16
import { readFileSync, writeFileSync, readdirSync, mkdirSync, existsSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/plugin-sync-claude.mjs :50
} from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/plugin-sync-kiro.mjs :30
} from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/plugin-sync.mjs :6
import { cpSync, mkdirSync, existsSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/prepare-release.mjs :19
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/scripts/sync-versions.mjs :6
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/approval.test.ts :2
import { readFileSync, writeFileSync, rmSync, mkdirSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/backend-file.test.ts :2
import { mkdtempSync, rmSync, readFileSync, statSync, writeFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/canary.test.ts :2
import { mkdtempSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/config-schema.test.ts :2
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/entanglement-policy.test.ts :2
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/keyring-lifecycle.test.ts :2
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/linter.test.ts :3
import { writeFileSync, mkdirSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/memory.test.ts :2
import { readFileSync, writeFileSync, existsSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/observer-agent-label.test.ts :2
import { mkdtempSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/observer.test.ts :2
import { mkdtempSync, rmSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/policy-root.test.ts :3
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/policy-secrets.test.ts :7
import { mkdirSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/policy.test.ts :9
import { mkdirSync, writeFileSync, rmSync, utimesSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/push.test.ts :2
import { mkdtempSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/registry-corruption.test.ts :9
} from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/run.test.ts :2
import { mkdtempSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/scan.test.ts :3
import { writeFileSync, mkdirSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/setup.test.ts :2
import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/core/wrap.test.ts :2
import { mkdtempSync, rmSync } from "node:fs"; - fs (weak) I4cTime-q-ring-1227290/src/__tests__/utils/file-lock.test.ts :8
} from "node:fs"; - fs I4cTime-q-ring-1227290/src/cli/commands/audit.ts :9
import { writeFileSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/cli/commands/doctor.ts :2
import { existsSync, readFileSync, writeFileSync, rmSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/cli/commands/project.ts :13
import { writeFileSync, readFileSync, existsSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/approval.ts :15
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/backend.ts :21
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/collapse.ts :14
import { readFileSync, statSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/entanglement.ts :10
import { existsSync, writeFileSync, mkdirSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/hooks.ts :8
import { existsSync, writeFileSync, mkdirSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/import.ts :5
import { readFileSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/linter.ts :9
import { readFileSync, writeFileSync, existsSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/memory.ts :16
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/observer.ts :24
} from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/policy.ts :9
import { statSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/run.ts :14
import { existsSync, readFileSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/scan.ts :9
import { readFileSync, readdirSync, statSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/core/setup.ts :11
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/hooks/precommit.ts :12
import { existsSync, writeFileSync, chmodSync, readFileSync, unlinkSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/utils/file-lock.ts :7
} from "node:fs"; - fs I4cTime-q-ring-1227290/src/utils/registry.ts :1
import { existsSync, readFileSync, renameSync } from "node:fs"; - fs I4cTime-q-ring-1227290/src/version.ts :1
import { readFileSync } from "node:fs";
shell / exec 12
- shell (weak) I4cTime-q-ring-1227290/scripts/build-mcpb.mjs :19
import { execSync } from "node:child_process"; - shell (weak) I4cTime-q-ring-1227290/scripts/prepare-release.mjs :20
import { execSync } from "node:child_process"; - shell (weak) I4cTime-q-ring-1227290/src/__tests__/core/notify.test.ts :5
const actual = await importOriginal<typeof import("node:child_process")>(); - shell (weak) I4cTime-q-ring-1227290/src/__tests__/core/push.test.ts :13
const actual = await importOriginal<typeof import("node:child_process")>(); - shell I4cTime-q-ring-1227290/src/cli/commands/tooling.ts :192
const { exec } = await import("node:child_process"); - shell I4cTime-q-ring-1227290/src/core/collapse.ts :13
import { execSync } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/core/exec.ts :12
import { spawn } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/core/hooks.ts :11
import { execFile, spawn } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/core/notify.ts :15
import { spawn } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/core/provision.ts :8
import { execFileSync, spawnSync } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/core/push.ts :15
import { spawnSync } from "node:child_process"; - shell I4cTime-q-ring-1227290/src/hooks/precommit.ts :11
import { execSync } from "node:child_process";
network 6
- net (weak) I4cTime-q-ring-1227290/src/__tests__/core/dashboard-server.test.ts :22
const res = await fetch(`${base}/`); - net I4cTime-q-ring-1227290/src/core/dashboard-client.ts :5
JSON.parse(g):g)}catch{}},[]),y=he(()=>{fetch(\"/api/status\"+fe,{cache:\"no-store\"}).then(g=>g.json()).then(h).catch(()=>{})},[h]);ee(()=>{let g=new EventSource(\"/events\"+fe);return g.onopen=()=>a - net I4cTime-q-ring-1227290/src/core/dashboard.ts :8
import { createServer, type IncomingMessage, type ServerResponse, type Server } from "node:http"; - net I4cTime-q-ring-1227290/src/core/ssrf.ts :11
import { isIPv4, isIPv6 } from "node:net"; - net I4cTime-q-ring-1227290/src/dashboard-client/main.js :636
fetch("/api/status" + Q, { cache: "no-store" }).then((r) => r.json()).then(applySnap).catch(() => {}); - net I4cTime-q-ring-1227290/src/utils/http-request.ts :6
import { request as httpsRequest } from "node:https";
secrets 3
- secrets (weak) I4cTime-q-ring-1227290/src/__tests__/core/run.test.ts :135
args: ["-e", "console.log('token is ' + process.env.INJECTED_TOKEN)"], - secrets I4cTime-q-ring-1227290/src/core/linter.ts :5
* optionally rewrites them with `process.env.KEY` references, storing the - secrets I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :131
"[scan] Inspect a specific list of files for hardcoded secrets and, when `fix` is true, replace each finding with `process.env.KEY` while storing the extracted value into the keyring.",
tool registrations 44
- agent_remember I4cTime-q-ring-1227290/src/mcp/tools/agent.ts :7
- agent_recall I4cTime-q-ring-1227290/src/mcp/tools/agent.ts :35
- agent_forget I4cTime-q-ring-1227290/src/mcp/tools/agent.ts :68
- audit_log I4cTime-q-ring-1227290/src/mcp/tools/audit.ts :15
- detect_anomalies I4cTime-q-ring-1227290/src/mcp/tools/audit.ts :81
- health_check I4cTime-q-ring-1227290/src/mcp/tools/audit.ts :108
- verify_audit_chain I4cTime-q-ring-1227290/src/mcp/tools/audit.ts :173
- export_audit I4cTime-q-ring-1227290/src/mcp/tools/audit.ts :190
- register_hook I4cTime-q-ring-1227290/src/mcp/tools/hooks.ts :13
- list_hooks I4cTime-q-ring-1227290/src/mcp/tools/hooks.ts :122
- remove_hook I4cTime-q-ring-1227290/src/mcp/tools/hooks.ts :140
- check_policy I4cTime-q-ring-1227290/src/mcp/tools/policy.ts :14
- get_policy_summary I4cTime-q-ring-1227290/src/mcp/tools/policy.ts :67
- check_project I4cTime-q-ring-1227290/src/mcp/tools/project.ts :11
- env_generate I4cTime-q-ring-1227290/src/mcp/tools/project.ts :92
- detect_environment I4cTime-q-ring-1227290/src/mcp/tools/project.ts :156
- get_project_context I4cTime-q-ring-1227290/src/mcp/tools/project.ts :187
- get_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :29
- list_secrets I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :73
- set_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :150
- delete_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :261
- has_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :289
- export_secrets I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :313
- import_dotenv I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :362
- inspect_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :421
- generate_secret I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :483
- entangle_secrets I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :554
- disentangle_secrets I4cTime-q-ring-1227290/src/mcp/tools/secrets.ts :623
- teleport_pack I4cTime-q-ring-1227290/src/mcp/tools/teleport.ts :14
- teleport_unpack I4cTime-q-ring-1227290/src/mcp/tools/teleport.ts :61
- exec_with_secrets I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :15
- scan_codebase_for_secrets I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :95
- lint_files I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :128
- analyze_secrets I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :176
- status_dashboard I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :229
- agent_scan I4cTime-q-ring-1227290/src/mcp/tools/tooling.ts :264
- tunnel_create I4cTime-q-ring-1227290/src/mcp/tools/tunnel.ts :12
- tunnel_read I4cTime-q-ring-1227290/src/mcp/tools/tunnel.ts :50
- tunnel_list I4cTime-q-ring-1227290/src/mcp/tools/tunnel.ts :78
- tunnel_destroy I4cTime-q-ring-1227290/src/mcp/tools/tunnel.ts :111
- validate_secret I4cTime-q-ring-1227290/src/mcp/tools/validation.ts :21
- list_providers I4cTime-q-ring-1227290/src/mcp/tools/validation.ts :60
- rotate_secret I4cTime-q-ring-1227290/src/mcp/tools/validation.ts :81
- ci_validate_secrets I4cTime-q-ring-1227290/src/mcp/tools/validation.ts :122
install hooks 1
- prepublishOnly I4cTime-q-ring-1227290/package.json :36
pnpm run build && pnpm run sync-versions
declared dependencies 17
- @modelcontextprotocol/sdk@^1.29.0
- @napi-rs/keyring@^1.3.0
- commander@^15.0.0
- ipaddr.js@^1.9.1
- zod@^4.4.3
- @eslint/js@^10.0.1
- @types/node@^26.1.1
- esbuild@^0.28.1
- eslint@^10.7.0
- htm@^3.1.1
- preact@^10.29.7
- prettier@^3.9.5
- tsup@^8.5.1
- typescript@^5.9.3
- typescript-eslint@^8.63.0
- vite@8.1.4
- vitest@^4.1.10