{"id":50301966,"url":"https://github.com/mrkhachaturov/agent-harness-docs","last_synced_at":"2026-05-28T13:09:02.272Z","repository":{"id":343982324,"uuid":"1179886953","full_name":"mrkhachaturov/agent-harness-docs","owner":"mrkhachaturov","description":"Local docs mirror for AI coding agents — auto-synced, indexer-agnostic.","archived":false,"fork":false,"pushed_at":"2026-05-25T18:35:29.000Z","size":9193,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T20:28:56.622Z","etag":null,"topics":["agentskills","ai-agents","claude-code","codex","coding-agents","docs-mirror","documentation","miyo"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ericbuess/claude-code-docs","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrkhachaturov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"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-03-12T13:37:08.000Z","updated_at":"2026-05-25T18:35:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mrkhachaturov/agent-harness-docs","commit_stats":null,"previous_names":["mrkhachaturov/claude-code-docs","mrkhachaturov/agent-harness-docs"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mrkhachaturov/agent-harness-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkhachaturov%2Fagent-harness-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkhachaturov%2Fagent-harness-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkhachaturov%2Fagent-harness-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkhachaturov%2Fagent-harness-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrkhachaturov","download_url":"https://codeload.github.com/mrkhachaturov/agent-harness-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkhachaturov%2Fagent-harness-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33609472,"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-05-28T02:00:06.440Z","response_time":99,"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":["agentskills","ai-agents","claude-code","codex","coding-agents","docs-mirror","documentation","miyo"],"created_at":"2026-05-28T13:09:01.274Z","updated_at":"2026-05-28T13:09:02.254Z","avatar_url":"https://github.com/mrkhachaturov.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agent Harness Docs\n\n[![Last Update](https://img.shields.io/github/last-commit/mrkhachaturov/agent-harness-docs/main.svg?label=docs%20updated)](https://github.com/mrkhachaturov/agent-harness-docs/commits/main)\n[![Platform](https://img.shields.io/badge/platform-macOS-blue)](https://github.com/mrkhachaturov/agent-harness-docs)\n\nLocal docs mirror for AI coding agents — auto-synced, indexer-agnostic.\n\nToday this repo collects documentation for three coding-agent harnesses:\n\n- **Claude Code** — from [code.claude.com](https://code.claude.com/docs/en/overview)\n- **OpenAI Codex** — from [developers.openai.com/codex](https://developers.openai.com/codex)\n- **OpenCode** — from [github.com/anomalyco/opencode](https://github.com/anomalyco/opencode) (MDX → Markdown)\n\nMore harnesses will be added over time (Cursor, Aider, etc.). The docs\nupdate upstream every 3 hours via GitHub Actions; an hourly launchd job\nmirrors them into flat folders under your home directory.\n\nYou decide how to consume them: drop a semantic-search tool on top, grep\nthe folder, or just let your agent read files directly. The installer\nships a small skill that adapts to whichever indexing tool you have.\n\n\u003e Originally [`claude-code-docs`](https://github.com/ericbuess/claude-code-docs).\n\u003e Forked from [ericbuess/claude-code-docs](https://github.com/ericbuess/claude-code-docs)\n\u003e and generalised to multiple harnesses + indexers.\n\n## What the installer sets up\n\n| Path | Contents |\n|---|---|\n| `~/claude-code-docs/` | Claude Code docs (~140 flat `.md` files) |\n| `~/codex-docs/` | Codex docs (~80 flat `.md` files) |\n| `~/opencode-docs/` | OpenCode docs (~34 flat `.md` files, MDX-converted) |\n| `~/Library/Caches/agent-harness-docs-mirror/` | Cache clone of this repo |\n| `~/Library/Application Support/agent-harness-docs/sync.sh` | Sync script |\n| `~/Library/LaunchAgents/com.mrkhachaturov.agent-harness-docs.plist` | Hourly launchd job |\n| `~/.claude/skills/claude-code-docs/SKILL.md` | Claude Code skill (variant picked by installer) |\n| `~/.claude/rules/claude-code-docs.md` | Always-on hint for Claude Code |\n| `~/.agents/skills/codex-docs/SKILL.md` | Codex skill (agentskills.io USER scope) |\n| `~/.agents/skills/opencode-docs/SKILL.md` | OpenCode-docs skill (shared across all three agents) |\n| `~/.claude/skills/opencode-docs` | Symlink → `~/.agents/skills/opencode-docs` (for Claude Code) |\n| `~/.config/opencode/opencode.json[c]` | Miyo MCP merged into the `mcp` block (when Miyo is detected) |\n\n## Skills adapt to your indexer\n\nAt install time the script detects what's on your machine and installs the\nmatching skill variant from `skills/\u003cdocset\u003e/\u003cindexer\u003e/SKILL.md`:\n\n| Detected | Variant | What the skill tells the agent |\n|---|---|---|\n| [Miyo](https://miyo.md) CLI is on `$PATH` | `miyo` | Use `mcp__miyo__search` with `folder_path: \"\u003cdocset\u003e\"` |\n| Nothing | `plain` | Use `ls` / `grep` / `Read` against the docs folder directly |\n\nIf you install (or remove) an indexer later, just re-run `install.sh` —\nit's idempotent and will swap in the right variant.\n\n\u003e **Want another indexer?** PR welcome — add `\u003cindexer\u003e` to `INDEXERS` in\n\u003e [`scripts/render_skills.py`](scripts/render_skills.py) and extend the\n\u003e Jinja2 templates in [`skills/templates/`](skills/templates/) with the\n\u003e tool-specific blocks. Run `python scripts/render_skills.py` and commit\n\u003e both the template change and the rendered output.\n\n## Install\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/mrkhachaturov/agent-harness-docs/main/install.sh | bash\n```\n\nmacOS only for now (uses launchd). Requires `git`, `rsync`, and `curl` —\nno Python or Node on your machine. The MDX → Markdown conversion for\nOpenCode runs in CI; you only receive pre-converted `.md` files.\n\n\u003e Linux / Windows installers are planned. For now, the doc-fetch and\n\u003e render scripts work cross-platform; only `install.sh` is mac-specific.\n\nAfter install, if you're on the `miyo` variant: open Miyo, add the three\ndoc folders, label them `claude-code-docs`, `codex-docs`, and\n`opencode-docs`. Restart your agent so the skills/rules/MCP load.\n\n## Use\n\nClaude Code:\n\n```text\n/claude-code-docs how do hooks interact with permissions?\n/claude-code-docs explain \"sandbox environments\"\n/claude-code-docs path \"permissions\" \"sandboxing\"\n```\n\nCodex (skill is auto-discovered via metadata — no rule file needed):\n\n```text\n/codex-docs how do I configure AGENTS.md for nested directories?\n/codex-docs explain \"skills vs plugins\"\n/codex-docs path \"MCP\" \"hooks\"\n```\n\nOpenCode (works in any of the three agents — opencode itself, Claude\nCode, or Codex — since the skill is shared):\n\n```text\n/opencode-docs how do I add a custom MCP server?\n/opencode-docs explain \"primary agents vs subagents\"\n/opencode-docs path \"skills\" \"permissions\"\n```\n\nEach skill scopes its search to its own indexed folder so results never\ncross-contaminate.\n\n## How it stays current\n\n- **Upstream** (this repo, GitHub Actions): every 3 hours, three fetchers\n  (`scripts/fetch_claude_docs.py`, `scripts/fetch_codex_docs.py`,\n  `scripts/fetch_opencode_docs.py`) read the upstream sources and update\n  `docs/claude-code/`, `docs/codex/`, and `docs/opencode/`. The OpenCode\n  fetcher additionally pipes each MDX file through a Node `remark-mdx`\n  converter so the result is plain Markdown.\n- **Local** (your machine, launchd): every hour, the sync script pulls\n  the latest cache clone and rsyncs all three subfolders into your home\n  folders.\n\n## Update\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/mrkhachaturov/agent-harness-docs/main/install.sh | bash\n```\n\nIdempotent — re-running just re-pulls the cache, re-wires the launchd\njob, and re-picks the indexer variant. Docs themselves refresh every hour\nwithout manual action.\n\n## Uninstall\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/mrkhachaturov/agent-harness-docs/main/uninstall.sh | bash\n```\n\nRemoves all installed files and the launchd job. **Does not** remove Miyo\nMCP registrations on agent CLIs / configs — those may be used for other\nthings. To remove them too:\n\n```bash\nclaude mcp remove miyo\ncodex  mcp remove miyo\n# opencode: edit ~/.config/opencode/opencode.json[c] and delete the\n# \"miyo\" entry under the \"mcp\" object.\n```\n\n## Layout choice — three skills, two-and-a-half folders\n\nEach agent scans its own conventional skill locations:\n\n- **Claude Code** → `~/.claude/skills/`\n- **Codex** → `~/.agents/skills/` (per [agentskills.io](https://agentskills.io) USER scope)\n- **OpenCode** → `~/.config/opencode/skills/` (native), **plus** both\n  `~/.claude/skills/` and `~/.agents/skills/` (OpenCode reads all three)\n\n`claude-code-docs` and `codex-docs` live in each harness's native folder\n— automatic isolation, no leakage between agents.\n\n`opencode-docs` is **shared** across all three harnesses (any of them\nmight be asked OpenCode questions). The canonical `SKILL.md` is at\n`~/.agents/skills/opencode-docs/` — read natively by OpenCode and Codex\n— and exposed to Claude Code via a symlink at\n`~/.claude/skills/opencode-docs`.\n\nThis is the pattern future general-purpose skills should follow.\n\n## Maintainer workflow\n\nTo add/edit a skill variant: edit the Jinja2 template in\n`skills/templates/`, then:\n\n```bash\npython scripts/render_skills.py             # render all combinations\npython scripts/render_skills.py --check     # verify on-disk matches templates\n```\n\nCommit both the template change and the rendered output. CI runs\n`--check` and fails the build if they're out of sync.\n\nFor the OpenCode pipeline (MDX → Markdown), Node deps live in\n`scripts/package.json` + `scripts/package-lock.json` (committed). CI\nruns `npm ci` inside `scripts/` before invoking\n`fetch_opencode_docs.py`. To test locally:\n\n```bash\ncd scripts \u0026\u0026 npm ci \u0026\u0026 cd ..\npython scripts/fetch_opencode_docs.py       # populates docs/opencode/\n```\n\n## License\n\nDocumentation content belongs to its respective authors — Anthropic\n(Claude Code), OpenAI (Codex), and the OpenCode project (OpenCode).\nInstaller, skills, fetchers, and renderer are open source.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrkhachaturov%2Fagent-harness-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrkhachaturov%2Fagent-harness-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrkhachaturov%2Fagent-harness-docs/lists"}