ccdesk
See and change everything Claude Code loads on your machine: instruction files, settings, permissions, hooks, MCP servers, subagents, skills, plugins and auto memory.
npx ccdesk
Each piece lives in its own file, at one of six scopes: managed, user, project, local, auto memory or a plugin. ccdesk opens in your browser on the directory you ran it from, lists everything that applies there in the order Claude Code loads it, and names the file behind each piece. When something is wrong, change it on the same page: you review the diff first, and every file ccdesk writes is backed up and can be undone. It is not a session viewer or a usage dashboard.
Docs: ayagmar.github.io/ccdesk
Questions it answers
- Why does Claude ask me before every
git pushhere? (Permissions) - Which model does this repository use, and which file set it? (Settings)
- Is my
AGENTS.mdloaded at all? (Instructions) - How much context does my config take before I type anything? (What Claude sees)
- What do I keep approving by hand, and which allow rules have I stopped needing? (Permissions)
- Which project MCP servers still wait for approval? (MCP servers)
What it covers
How changes are made
- You see the exact diff before anything is written, and Save writes exactly that diff. If the file changed in the meantime, ccdesk asks you to review again.
- The old file is backed up to
~/.claude/backups/ccdesk/first. Undo is one click, and Recent changes can restore any earlier edit. - ccdesk never writes
~/.claude.json. User and local MCP server changes go through Claude Code's ownclaude mcpcommand, and Recent changes lists the commands that reverse each one.
Details: Recent changes, backups and undo
Commands
npx ccdesk Open the page in your browser
npx ccdesk scan [dir] --json Print what Claude Code loads in dir, as JSON
npx ccdesk explain <file> Print what loads once Claude reads or edits file
npx ccdesk check [dir] Exit 1 when a session started in dir reads a file
Claude Code cannot read or parse, or a setting it ignores, for CI
npx ccdesk compare <a> <b> Print the settings that differ between two directories
npx ccdesk rules --suggest Print the allow rules that would have covered calls you approved
npx ccdesk forget <dir> Forget a directory whose folder is gone (--all-gone: all of them)
npx ccdesk hook --install Warn at the start of each session when what it loads has problems
Requires Node.js 22.19 or newer. Options, the check command in CI, the session check, and what ccdesk reads and writes are in Getting started; keyboard shortcuts are in Reading the interface, and Windows, macOS and WSL in Platform notes.
Privacy and safety
- The server listens on
127.0.0.1only, and every API call needs the token in the printed link. A restart within 15 minutes keeps it, so an open page keeps working; after that it is new. Nothing leaves your machine. - Values under
envandheaders, a URL's user name, password and query string, and secrets in MCP server arguments are hidden everywhere in the UI, diffs included, and ccdesk refuses any edit that would change them. - ccdesk never reads
~/.claude/.credentials.json. From your transcripts, only counts and rule patterns reach the page.
The full list is in Safety and privacy.
Development
pnpm install
pnpm dev # API on 127.0.0.1:4319
pnpm dev:ui # UI with hot reload on localhost:4320
pnpm check # typecheck, lint, format, tests, build
Contributing covers the tests, the data generated from Claude Code, the docs site and releases. ARCHITECTURE.md explains how the code fits together.
License
MIT