{"id":51312921,"url":"https://github.com/omerakben/agent-context-center","last_synced_at":"2026-07-01T05:32:25.522Z","repository":{"id":361287935,"uuid":"1253829839","full_name":"omerakben/agent-context-center","owner":"omerakben","description":"One offline, committed HTML dashboard that maps a repo's AI context — CLAUDE.md, AGENTS.md, Cursor rules, MCP servers, skills, agents, hooks, commands, docs, and TODOs. Markdown stays the source of truth; the dashboard is the human map.","archived":false,"fork":false,"pushed_at":"2026-06-01T14:22:27.000Z","size":1087,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T14:23:00.457Z","etag":null,"topics":["agents-md","ai-coding-assistant","claude-code","codex","cursor","developer-tools","documentation","mcp","model-context-protocol","python"],"latest_commit_sha":null,"homepage":"https://omerakben.github.io/agent-context-center/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omerakben.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-29T21:22:51.000Z","updated_at":"2026-06-01T12:41:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/omerakben/agent-context-center","commit_stats":null,"previous_names":["omerakben/ai-control-center","omerakben/agent-context-center"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/omerakben/agent-context-center","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omerakben%2Fagent-context-center","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omerakben%2Fagent-context-center/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omerakben%2Fagent-context-center/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omerakben%2Fagent-context-center/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omerakben","download_url":"https://codeload.github.com/omerakben/agent-context-center/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omerakben%2Fagent-context-center/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34994876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents-md","ai-coding-assistant","claude-code","codex","cursor","developer-tools","documentation","mcp","model-context-protocol","python"],"created_at":"2026-07-01T05:32:25.398Z","updated_at":"2026-07-01T05:32:25.483Z","avatar_url":"https://github.com/omerakben.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agent Context Center\n\nAI agents have `AGENTS.md`. Humans need `dashboard.html`.\n\nAgent Context Center turns a repo's scattered AI operating layer into one committed,\noffline HTML dashboard. Claude Code instructions, Codex prompts, Cursor rules, MCP\nservers, hooks, commands, skills, docs, and open TODOs become a source-linked map that a\nhuman can review in a browser.\n\n[View the demo dashboard](https://omerakben.github.io/agent-context-center/demo/dashboard.html)\n· [Open the public site](https://omerakben.github.io/agent-context-center/)\n· [Install from GitHub](#quickstart)\n· [Troubleshooting](#troubleshooting)\n\n![The dashboard rendered for a multi-provider repo](acc-dashboard-multi.png)\n\n## Why use it\n\nModern repos increasingly have two codebases:\n\n- the product code people review every day\n- the AI context that tells agents how to work in that repo\n\nThe second one is easy to miss. It lives in `CLAUDE.md`, `AGENTS.md`,\n`.claude/agents`, `.codex/prompts`, Cursor rules, MCP config, docs, and TODOs. Agent\nContext Center makes that layer visible, diffable, and safe to hand off.\n\nUse it when you need to:\n\n| Use case | What ACC gives you |\n| --- | --- |\n| Onboard a developer or coding agent | One browser page showing the repo's AI instructions, tools, prompts, docs, and TODOs. |\n| Review a pull request that changes agent behavior | A regenerated `dashboard.html` diff beside the markdown/config diff. |\n| Audit MCP, hooks, and commands | A provider-aware inventory with source paths and redacted config summaries. |\n| Handoff a repo between humans or agents | A deterministic snapshot of what the repo declares, not a chat-only explanation. |\n| Keep AI context fresh in CI | `acc doctor --strict` flags stale dashboards and weak metadata without network or model calls. |\n| Explain the repo's AI surface publicly | A static demo artifact you can open from `file://`, GitHub Pages, or a PR. |\n\n![Agent Context Center use-case map](assets/use-case-map.svg)\n\n## The pitch\n\nMarkdown stays the source of truth. The dashboard is the human map.\n\nACC is not an agent runtime and it does not control tools. It reads the files already in\nyour repo, normalizes them through provider adapters, redacts secret-shaped values, and\nemits a self-contained `dashboard.html`. You can commit it, diff it, open it offline, and\nask reviewers to inspect it like any other generated artifact.\n\n## Quickstart\n\n`acc` is stdlib Python 3.12+ with no third-party runtime dependencies. There are two ways\nto run it.\n\n### Inside Claude Code (no install)\n\n```text\n/plugin marketplace add omerakben/agent-context-center\n/plugin install agent-context-center@ozzy-skills\n/dashboard\n```\n\n`/dashboard` runs the bundled generator against the repo you launched Claude Code in. No\npip install, no network. It needs `python3` 3.12+ on your PATH; if yours is older, the\ncommand tells you instead of failing with a stack trace.\n\n### Standalone CLI\n\n`acc` is a command-line app, so install it isolated. A bare `pip install` is refused by\nHomebrew and Debian Python (PEP 668, \"externally-managed-environment\"), so use `pipx` or\n`uv`, which put `acc` on your PATH in its own environment:\n\n```bash\npipx install \"git+https://github.com/omerakben/agent-context-center\"\n# or:  uv tool install \"git+https://github.com/omerakben/agent-context-center\"\nacc --root .\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eNo pipx or uv? Use a stdlib virtual environment.\u003c/summary\u003e\n\n```bash\npython3 -m venv .venv \u0026\u0026 . .venv/bin/activate\npip install \"git+https://github.com/omerakben/agent-context-center\"\nacc --root .\n```\n\n\u003c/details\u003e\n\n`acc --root .` writes `dashboard.html` into the auto-detected provider folder, for example\n`.claude/dashboard.html`, or `.agent-context-center/` if no provider is found. It prints\nthe path, source digest, scanned file count, and providers. Open the printed path in a\nbrowser. No server. No network.\n\nWrite the dashboard at the repo root instead:\n\n```bash\nacc --root . --out .\n```\n\n`--out` takes a directory, not a filename.\n\nThe dashboard header shows the repo name. It comes from `pyproject.toml`\n`[project].name`, then `package.json` `name`, then the directory name. Pin it explicitly\nwhen you need byte-stable output across differently named clones:\n\n```bash\nacc --root . --repo-name my-repo\n```\n\n## What it maps\n\n| Source | Status |\n| --- | --- |\n| Claude Code: `CLAUDE.md`, `.claude/agents`, `.claude/commands`, `.claude/skills` (`SKILL.md`), hooks and MCP from `.claude/settings.json` and `.mcp.json` | Supported today |\n| Codex: `AGENTS.md`, `.codex/prompts`, `.codex/config.toml` MCP and config facts | Supported today |\n| Cursor: `.cursorrules`, `.cursor/rules/*.mdc`, `.cursor/mcp.json` | Supported today |\n| Generic markdown indexing for any other `.md` as docs | Supported today |\n| Open TODOs from `- [ ]` checkbox lines | Supported today |\n| Cross-references from docs to inventory paths and config files to declared MCP/hooks | Supported today |\n| Redaction before rendering with a final output tripwire | Supported today |\n| `GEMINI.md` and `.github/copilot-instructions.md` as first-class adapters | Planned |\n| PRD, ADR, decision, and workflow classification | Planned |\n| Published reusable GitHub Action | Planned, today a copyable workflow template is included |\n| Health score | Planned, today `acc doctor` reports concrete findings |\n\n## Demo scripts\n\nUse these as developer-advocate walkthroughs.\n\n### One-minute repo orientation\n\n```bash\nacc --root . --out .\nopen dashboard.html\n```\n\nShow the overview cards, provider chips, search box, and source-linked inventory. The\nmessage is simple: a maintainer can understand the repo's AI layer without opening every\nhidden folder. In normal repo use, you can omit `--out .` and open the path printed by\nthe command.\n\n### PR review of AI behavior\n\n```bash\nacc --root .\ngit diff -- '**/dashboard.html'\n```\n\nChange an agent, prompt, hook, or MCP config, regenerate, then review the dashboard diff.\nThe generated artifact makes behavior changes visible to reviewers who do not know every\nprovider's file layout.\n\n### CI freshness gate\n\n```bash\nacc doctor --root . --strict\n```\n\nUse the included workflow template in `templates/refresh/ci-drift-check.yml` to fail a PR\nwhen the committed dashboard is stale.\n\n## Guarantees\n\n- Static HTML, offline, no runtime network.\n- No server, database, CDN, telemetry, or build step.\n- Deterministic and byte-stable for unchanged inputs.\n- Redaction runs before rendering.\n- Structured config uses allowlisted fields.\n- The renderer is `textContent` only, so repo content cannot inject script.\n- Works air-gapped once installed locally.\n- Stdlib Python 3.12+ only.\n\n## What this is not\n\n- Not an agent runtime or orchestrator.\n- Not control of agents.\n- Not a cloud service or SaaS.\n- Not a replacement for markdown, Claude Code, Codex, Cursor, Copilot, or MCP.\n- Not a full secret scanner.\n- Not a policy engine or mission-control system.\n\nIt maps, inspects, summarizes, and source-links. It does not manage or run anything.\n\n## acc doctor\n\n`acc doctor` reads the repo and prints deterministic findings. It uses no git history,\nmtimes, network, or model judgment, so the same repo yields the same report.\n\nIt checks for a stale dashboard, missing or unreadable dashboard, generator-version\ndrift, weak metadata, near-empty instruction files, large files, conservative broken\nrelative markdown links, redacted secret-shaped values, and open TODOs.\n\n```bash\nacc doctor --root .            # print findings\nacc doctor --root . --strict   # exit 1 if any warning\nacc doctor --root . --json     # a doctor.v1 report\n```\n\nExit codes:\n\n- `0` clean, or warnings without `--strict`\n- `1` warnings with `--strict`\n- `2` execution error\n\nExample report shape:\n\n```text\nAgent Context Center - doctor\nRoot: /repo\nFiles scanned: 24 · providers: claude, codex\nDashboard: .claude/dashboard.html\nStatus: needs attention\nFindings:\n  ! [stale-dashboard] .claude/dashboard.html is stale (built from a1b2c3, current is d4e5f6) - re-run `acc --root .`.\n  ! [weak-metadata] 2 agent/skill/command/rule file(s) have no description (e.g. .claude/agents/triage.md) - add a `description:` so humans and agents know the intent.\n  · [open-todos] 5 open `- [ ]` TODO(s) found.\nNext: run `acc --root .` to (re)generate the dashboard.\n```\n\n## For teams and CI\n\nCommit `dashboard.html` next to the markdown it describes. A pull request then shows the\ndashboard diff alongside the context changes, so a reviewer sees what moved without\nopening each file.\n\nA static `file://` page cannot tell it is stale, so refresh is explicit. Add a CI drift\ncheck that regenerates the dashboard and fails if the committed copy fell behind:\n\n```bash\nacc --root .\ngit diff --exit-code -- '**/dashboard.html'\n```\n\nOr run `acc doctor --root . --strict`, which exits `1` on a `stale-dashboard` finding. A\ncopyable workflow lives at\n[`templates/refresh/ci-drift-check.yml`](templates/refresh/ci-drift-check.yml).\n\n## Security and redaction\n\nBefore anything reaches the file, structured provider config is allowlisted and\nfree-form prose runs through a high-precision secret-shaped-string scanner. A tripwire\nre-scans the assembled output.\n\nThis is not a full entropy scanner. A high-entropy value with no telltale prefix can\nslip through. Review a generated dashboard before publishing one from a repo with\nunusual secrets.\n\n## Roadmap\n\nSee [ROADMAP.md](ROADMAP.md).\n\n## Troubleshooting\n\nMost failures are environment setup, not the generator. Find your error message below.\n\n### `error: externally-managed-environment`\n\nHomebrew and Debian/Ubuntu Python refuse a system-wide `pip install` (PEP 668). You do not\nneed a system install. Run it as the [Claude Code plugin](#inside-claude-code-no-install)\nwith no pip at all, or install the CLI in isolation:\n\n```bash\npipx install \"git+https://github.com/omerakben/agent-context-center\"\n# or:  uv tool install \"git+https://github.com/omerakben/agent-context-center\"\n```\n\nA plain `python3 -m venv .venv` and activating it works too. See [Standalone CLI](#standalone-cli).\n\n### `Agent Context Center needs Python 3.12+ on PATH`\n\nThe generator uses 3.12+ syntax that is checked at import. Install a newer interpreter —\n`brew install python@3.12`, `pyenv install 3.12`, or `uv python install 3.12` — so that\n`python3` (or `python3.12`) resolves to it. The `/dashboard` command tries `python3.13`,\n`python3.12`, then `python3`, and reports the version it found instead of crashing.\n\n### `CLAUDE_PROJECT_DIR is not set`\n\nYou are on a plugin build older than 1.3.3. Update it, then retry `/dashboard`:\n\n```text\n/plugin marketplace update ozzy-skills\n/plugin update agent-context-center@ozzy-skills\n```\n\n1.3.3 and later scan the directory you launched Claude Code in and no longer need that\nvariable.\n\n### `cannot locate the bundled generator`\n\nThe plugin's files were not found on disk. Reinstall or update the plugin so a path like\n`~/.claude/plugins/cache/ozzy-skills/agent-context-center/\u003cversion\u003e/src/acc` exists, then\nre-run `/dashboard`.\n\n### `error: multiple dashboards found`\n\nThe repo already has a `dashboard.html` under more than one provider folder, so ownership\nis ambiguous. Re-run naming the folder that owns it:\n\n```bash\nacc --root . --owner .claude   # or --owner .codex, --owner .cursor\n```\n\n### `PermissionError` while scanning\n\nA build or IDE file was locked by another process — most often Visual Studio's `.vs`\nindex. Update to 1.3.2 or later, which excludes `.vs`, `bin`, `obj`, and other build\nartifacts from the scan.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomerakben%2Fagent-context-center","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomerakben%2Fagent-context-center","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomerakben%2Fagent-context-center/lists"}