{"_id":"@arka-labs/nemesis","_rev":"6-968e017ed9f6f2d4162cb6f5fabbfaad","name":"@arka-labs/nemesis","dist-tags":{"latest":"1.2.5"},"versions":{"1.2.0":{"name":"@arka-labs/nemesis","version":"1.2.0","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","_id":"@arka-labs/nemesis@1.2.0","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"bin":{"nemesis":"src/index.js"},"dist":{"shasum":"d03f5dd8b01676a426eaa83ae4f7e4980ba36d51","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.0.tgz","fileCount":100,"integrity":"sha512-ROugVn4ZrNS28xtiTg/eQn8FkflDUBpsSaAfyfwXIGJnlNUoy/37QTTWWsPh8CtoBMZRl4upmRCO8GrKAQF7BA==","signatures":[{"sig":"MEYCIQD/7ezB2mJZ8nSgL0j32SfPDegNE8fUhcb71CmG1lL6PwIhAOhBXpHGCtXBfLyM+PteDj9XR9vuRZYxpy1VCJvbDKyN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571947},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"2ed3065f48f9ea9c664636a8e51b0f493be9bb2e","scripts":{"lint":"eslint src/ lib/","test":"vitest run","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags","lint:fix":"eslint src/ lib/ --fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm test"},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"repository":{"url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","directories":{},"_nodeVersion":"20.19.6","dependencies":{"xstate":"^5.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","vitest":"^3.0.0","@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/nemesis_1.2.0_1773733102656_0.6167166865842877","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@arka-labs/nemesis","version":"1.2.1","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","_id":"@arka-labs/nemesis@1.2.1","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"bin":{"nemesis":"src/index.js"},"dist":{"shasum":"11bdeda3ab226b2f0fb4b4d64669cd6036e6c808","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.1.tgz","fileCount":100,"integrity":"sha512-ZfZ547ahYf3cwuZ2Q6oehHAj0tSXKbFvT8mWVkltA2TNZO4lVyjCmWkX/IpHoRk57cPkubz9J5EfYtrRc83MdA==","signatures":[{"sig":"MEUCIQCEMqxHs0JuUotZs1Mg7NxGYOYeOOpnn4CcCYOerkARwQIgC/kMEdoi2me7OeOgsG0FVtU1seG7pWOQuZcC0YNrJN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572320},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"745267c7f634eda0d5a073a594887b1e3263a9c0","scripts":{"lint":"eslint src/ lib/","test":"vitest run","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags","lint:fix":"eslint src/ lib/ --fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm test"},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"repository":{"url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","directories":{},"_nodeVersion":"20.19.6","dependencies":{"xstate":"^5.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","vitest":"^3.0.0","@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/nemesis_1.2.1_1773741347479_0.956118958631768","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@arka-labs/nemesis","version":"1.2.2","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","_id":"@arka-labs/nemesis@1.2.2","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"bin":{"nemesis":"src/index.js"},"dist":{"shasum":"f6dd040efc2f86d9678e8a0d3347b4bd8b8173ad","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.2.tgz","fileCount":100,"integrity":"sha512-TDkCbdnc2wSaETVzt+gzl2M4GelZRuQnWka0xJufqZrWjGxe6He/O1DQ+OEu8BPDGhijdMfnw82BaguchZiwQw==","signatures":[{"sig":"MEQCIDQ3ZcdG2CysJ79SO8iZQD0eIVRK7gMRGim8WH53uai3AiBOPFONon5I83yy3AODa8+EKzqh2GKcK+ENYJu+UcHmwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572334},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"6e0197be33f6e73c55acf835d3750a1ea1a8a78f","scripts":{"lint":"eslint src/ lib/","test":"vitest run","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags","lint:fix":"eslint src/ lib/ --fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm test"},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"repository":{"url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","directories":{},"_nodeVersion":"20.19.6","dependencies":{"xstate":"^5.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","vitest":"^3.0.0","@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/nemesis_1.2.2_1773741551277_0.1410863163909173","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@arka-labs/nemesis","version":"1.2.3","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","_id":"@arka-labs/nemesis@1.2.3","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"bin":{"nemesis":"src/index.js"},"dist":{"shasum":"5e4a33bdccedafe8c3ccc8c967243f278ff4d9ef","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.3.tgz","fileCount":100,"integrity":"sha512-YQVFdKD/hFTPuP5ww39kpGPlIS2PiuyXsz/gjbehP7OM2bWv1hDtOU/sm9XTDKosuODHaOCrBXv40wtE1aujPQ==","signatures":[{"sig":"MEUCIQCX+q5nvyrltMVZHnANIYrKokrntBMucqC4xLjwj/Pu4AIgIgqwboNlXnGIjxp9vBtccxnk0lEwBQYYQV4/TdpSnEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572584},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"49dc2edf7028c4f061b585855dbb26f2c73ecc3b","scripts":{"lint":"eslint src/ lib/","test":"vitest run","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags","lint:fix":"eslint src/ lib/ --fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm test"},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"repository":{"url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","directories":{},"_nodeVersion":"20.19.6","dependencies":{"xstate":"^5.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","vitest":"^3.0.0","@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/nemesis_1.2.3_1773741892998_0.7265820471102988","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@arka-labs/nemesis","version":"1.2.4","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","_id":"@arka-labs/nemesis@1.2.4","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"bin":{"nemesis":"src/index.js"},"dist":{"shasum":"1a1514db40c4d7bcd5ac682c96e1c3fe46739a55","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.4.tgz","fileCount":100,"integrity":"sha512-mn8cLuF9tdjk/uKmgxQb2Q/qAvIYp1db0Pc/IPJKBz3Yvn1HmPDysJYLR+alqTYJMEmHWUaOWLwGRqnWzcG4PQ==","signatures":[{"sig":"MEQCIGc0bVz4+98is/1ZhIJG154n4julkFA5xsREb4SuxSlfAiBT5hMTaWdIlyzAv0RXxt2J3KJXtj24oTgGiSZHFmhPyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572570},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"da6c8f5bae3e6cddade9ec725fe57ffb3fcdd4ff","scripts":{"lint":"eslint src/ lib/","test":"vitest run","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags","lint:fix":"eslint src/ lib/ --fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run lint && npm test"},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"repository":{"url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","directories":{},"_nodeVersion":"20.19.6","dependencies":{"xstate":"^5.28.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.3","vitest":"^3.0.0","@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4"},"_npmOperationalInternal":{"tmp":"tmp/nemesis_1.2.4_1773752659603_0.157118275438614","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@arka-labs/nemesis","version":"1.2.5","description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","type":"module","bin":{"nemesis":"src/index.js"},"scripts":{"test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src/ lib/","lint:fix":"eslint src/ lib/ --fix","prepublishOnly":"npm run lint && npm test","release":"npm test && git tag v$(node -p \"require('./package.json').version\") && git push --tags"},"keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git"},"homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","engines":{"node":">=20.0.0"},"dependencies":{"xstate":"^5.28.0"},"devDependencies":{"@eslint/js":"^10.0.1","@vitest/coverage-v8":"^3.2.4","eslint":"^10.0.3","vitest":"^3.0.0"},"_id":"@arka-labs/nemesis@1.2.5","gitHead":"ab0c190394583cc0713593bec03bcf4308983297","bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-czOT6SEB4cDcUPcta4b7qAD/5AdJjsZvD4rqRTZ7HEIDrPUUkcSF8Md1CX1g/u0g0YIIxapgqKwmnPM8RaMtcw==","shasum":"4697569d01745cfa26371048454b5a95c770aa61","tarball":"https://registry.npmjs.org/@arka-labs/nemesis/-/nemesis-1.2.5.tgz","fileCount":100,"unpackedSize":572616,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDJhN70PBFokDsfJhL6S71xO9lT7eYCSzYnCmcLwUmK0AIhAN00PhHHPawrcv8Ss6ZZOb7dQZlhi1ksgHCmzJCJjAEM"}]},"_npmUser":{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"},"directories":{},"maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nemesis_1.2.5_1773758603402_0.853744652572854"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T07:38:22.537Z","modified":"2026-03-17T14:43:23.744Z","1.2.0":"2026-03-17T07:38:22.811Z","1.2.1":"2026-03-17T09:55:47.680Z","1.2.2":"2026-03-17T09:59:11.470Z","1.2.3":"2026-03-17T10:04:53.166Z","1.2.4":"2026-03-17T13:04:19.748Z","1.2.5":"2026-03-17T14:43:23.611Z"},"bugs":{"url":"https://github.com/arka-squad/arkalabs-nemesis-cli/issues"},"author":{"name":"ARKA LABS","email":"contact@arkalabs.app"},"license":"Apache-2.0","homepage":"https://github.com/arka-squad/arkalabs-nemesis-cli#readme","keywords":["cli","agents","ai","llm","orchestration","project-management","hcm","arka-labs"],"repository":{"type":"git","url":"git+https://github.com/arka-squad/arkalabs-nemesis-cli.git"},"description":"PM cockpit for orchestrating AI agent teams — file-first, HCM-native, Kairos hooks","maintainers":[{"name":"jeremygrim","email":"grimonpont.jeremy@gmail.com"}],"readme":"<p align=\"center\">\n  <pre align=\"center\">\n   █████╗ ██████╗ ██╗  ██╗ █████╗ ██╗      █████╗ ██████╗ ███████╗\n  ██╔══██╗██╔══██╗██║ ██╔╝██╔══██╗██║     ██╔══██╗██╔══██╗██╔════╝\n  ███████║██████╔╝█████╔╝ ███████║██║     ███████║██████╔╝███████╗\n  ██╔══██║██╔══██╗██╔═██╗ ██╔══██║██║     ██╔══██║██╔══██╗╚════██║\n  ██║  ██║██║  ██║██║  ██╗██║  ██║███████╗██║  ██║██████╔╝███████║\n  ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝\n  </pre>\n</p>\n\n<h1 align=\"center\">Nemesis CLI</h1>\n<p align=\"center\"><strong>PM cockpit for orchestrating AI agent teams</strong></p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@arka-labs/nemesis\"><img src=\"https://img.shields.io/npm/v/@arka-labs/nemesis.svg\" alt=\"npm version\"></a>\n  <img src=\"https://img.shields.io/node/v/@arka-labs/nemesis.svg\" alt=\"node version\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-Apache--2.0-blue.svg\" alt=\"license\"></a>\n  <img src=\"https://img.shields.io/badge/dependencies-1_(xstate)-blue.svg\" alt=\"dependencies\">\n  <img src=\"https://img.shields.io/badge/tests-862%20passing-brightgreen.svg\" alt=\"tests\">\n</p>\n\n---\n\n## Why Nemesis?\n\nWhen you orchestrate a team of AI agents (Claude Code, Copilot, etc.), you need structure: who does what, what's been assigned, what's been delivered, what's broken. Nemesis gives you a **file-first CLI cockpit** to manage all of that without a server, a database, or any runtime dependency. JSON files in your repo are the single source of truth. A remote HCM (Human Capital Management) graph keeps everything in sync.\n\n## Quick Start\n\n```bash\n# Install globally\nnpm install -g @arka-labs/nemesis\n\n# Initialize a project in your repo\nnemesis init\n\n# Add an AI agent to your team\nnemesis team add\n\n# Check project status\nnemesis status\n```\n\nRequires **Node.js >= 20**. Single runtime dependency (xstate for workflow state machine).\n\n## Interactive Mode\n\nRun `nemesis` without arguments to launch the interactive menu:\n\n```\n   █████╗ ██████╗ ██╗  ██╗ █████╗ ██╗      █████╗ ██████╗ ███████╗\n  ...\n\n  ARKA Labs CLI v1.2.0  nemesis\n\n  ── Projet ──────────────────────────\n  ❯ status      — Etat du projet + alertes\n    init        — Scaffold structure projet\n    doctor      — Diagnostic complet\n\n  ── Equipe ──────────────────────────\n    team:list   — Organigramme hierarchique\n    team:panneau— Panneau agent\n    team:add    — Ajouter un agent\n    kars        — Profils Kairos disponibles\n\n  ── Travail ─────────────────────────\n    orch        — Dashboard orchestration\n    inbox       — Documents → Mission Contract\n    mission     — Mission Contracts\n    odm         — Ordres de Mission\n    audit       — Audits techniques\n\n  ── Memoire ─────────────────────────\n    notes       — Notes et CRs agents\n    notewriter  — Gestion contexte agent\n\n  ── Infra ───────────────────────────\n    services    — Connexions LLM\n    hcm         — Synchronisation HCM\n    auth        — Login HCM\n    kairos      — Hooks & contexte agent\n\n  Fleches ↑↓ pour naviguer, Enter pour selectionner, q pour quitter\n```\n\nNavigate with arrow keys (or `j`/`k`), press Enter to select, `q` or Escape to quit.\n\n## Commands\n\n### `nemesis init`\n\nScaffold a new project structure in the current repository.\n\n```bash\nnemesis init\nnemesis init --bare --id MY-PROJECT --name \"My Project\" --desc \"Description\"\n```\n\nCreates:\n- `.nemesis/HCM/` — 10 subdirectories for project artifacts (contracts, odm, cr, decisions, etc.)\n- `.nemesis/template/` — 8 JSON templates for structured documents\n- `CONTEXT_PROJECT_*.json` — project context file\n- `REGISTRY-*.json` — team registry (PM only at start)\n- `PROCESS.md` — workflow documentation\n\n### `nemesis team`\n\nThe core command. Manages your AI agent team.\n\n#### `nemesis team add`\n\nOnboard a new agent through an interactive 9-step process:\n\n1. Detect project\n2. Select Kairos profile from HCM (or manual entry)\n3. Configure agent (name, role, hierarchy)\n4. Create `memory.md` for the agent\n5. Create contributor card in `.nemesis/HCM/contributors/`\n6. Update team registry\n7. Update `~/.claude/CLAUDE.md` (agent table + workflow tree)\n8. Generate onboarding prompt\n9. Return launch command\n\n```bash\n# Interactive (recommended)\nnemesis team add\n\n# Non-interactive\nnemesis team add --name Agent_Dev --role Implementeur --reports-to PM --no-prompt\n```\n\nOutput:\n```\n  ✓ Projet detecte           → MY-PROJECT\n  ✓ Agent configure           → Agent_Dev — Implementeur\n  ✓ memory.md cree            → .nemesis/claude/Agent_Dev/memory.md\n  ✓ Contributor card creee    → .nemesis/HCM/contributors/CONTRIB-Dev.json\n  ✓ Registre mis a jour       → Lane ajoutee : Agent_Dev\n  ✓ CLAUDE.md mis a jour      → Tableau + Workflow\n  ✓ Prompt d'onboarding genere → .nemesis/onboarding/prompt-Dev.md\n  ✓ Commande de lancement      → claude --prompt .nemesis/onboarding/prompt-Dev.md\n\n  Pour demarrer l'agent :\n    claude --prompt .nemesis/onboarding/prompt-Dev.md\n```\n\n#### `nemesis team list`\n\nDisplay the organizational tree.\n\n```bash\nnemesis team list\n```\n\n```\n  Jeremy Grimonpont (PM)\n  ├── Agent_Nemesis-CLI (Architecte / QA)\n  │   └── Agent_Bot-CLI (Implementeur)\n  └── Agent_ARCH-CLI (Archiviste documentaire)\n```\n\n#### `nemesis team inspect [agent]`\n\nDetailed view of a specific agent: memory stats, assigned OdMs, recent CRs.\n\n```bash\nnemesis team inspect Agent_Bot-CLI\nnemesis team inspect Agent_Bot-CLI --format json\n```\n\n```\n  Agent     : Agent_Bot-CLI\n  Kind      : agent\n  Role      : Implementeur\n  Reporte a : Agent_Nemesis-CLI\n  MCP       : (aucun)\n  Memory    : .nemesis/claude/Agent_Bot-CLI/memory.md (2.1 KB, maj 2026-03-10)\n\n  OdMs assignes :\n  ┌──────────────────┬──────────┬─────────────────────────────┐\n  │ OdM              │ Status   │ Titre                       │\n  ├──────────────────┼──────────┼─────────────────────────────┤\n  │ ODM-NEMESIS-004  │ VALIDE   │ Infrastructure + Team       │\n  └──────────────────┴──────────┴─────────────────────────────┘\n```\n\n#### `nemesis team remove [agent]`\n\nArchive an agent. Files are preserved for traceability (memory.md renamed to .archived).\n\n```bash\nnemesis team remove Agent_Dev\n```\n\n### `nemesis project`\n\n```bash\nnemesis project status    # Synthetic project view: team size, OdMs, decisions, CRs\nnemesis project init      # Alias for \"nemesis init\"\n```\n\n### `nemesis mission`\n\nManage Mission Contracts (high-level work packages with gates and task registries).\n\n```bash\nnemesis mission init              # Create a new Mission Contract (auto-generates ID)\nnemesis mission init MCT-001      # Create with explicit ID\nnemesis mission list              # List all contracts\nnemesis mission inspect MCT-001   # Full contract content: cadrage, workflow, tasks\n```\n\n### `nemesis odm`\n\nManage Ordres de Mission (specific, assignable work items derived from Mission Contracts).\n\n```bash\nnemesis odm init              # Create a new OdM (auto-generates ID)\nnemesis odm init ODM-004      # Create with explicit ID\nnemesis odm list              # List all OdMs with status/assignee/priority\nnemesis odm inspect ODM-004   # Full OdM content + associated CRs\n```\n\n### `nemesis status`\n\nQuick project status with smart alerts.\n\n```bash\nnemesis status\n```\n\n```\n  MY-PROJECT — 2 agent(s), 3 OdM, 1 en cours\n\n  ⚠ Equipe vide — ajoutez un agent : nemesis team add\n  ⚠ ODM-003 en DRAFT mais non assigne\n  ⚠ Agent_Bot n'a pas mis a jour sa memoire depuis 4 jours\n```\n\nAlerts include: empty team, missing Mission Contracts, OdMs without CRs, stale agent memory, unassigned drafts.\n\n### `nemesis hcm`\n\nSynchronize local JSON files with the remote HCM knowledge graph.\n\n```bash\nnemesis hcm status    # Connection diagnostic (ping, auth, graph stats)\nnemesis hcm sync      # Scan .nemesis/HCM/, diff hashes, push modified files\nnemesis hcm search \"query\"  # Full-text search in HCM documents\n```\n\nThe sync engine:\n1. Scans `.nemesis/HCM/` recursively for JSON files\n2. Computes SHA-256 hashes and compares with last sync state\n3. Pushes only modified files to the HCM API\n4. Ignores `template_*` and `legacy_*` files\n\n### `nemesis doctor`\n\nFull system diagnostic.\n\n```bash\nnemesis doctor\n```\n\n```\n  Structure .nemesis/HCM/ :\n    ✓ contracts/\n    ✓ odm/\n    ✓ cr/\n    ...\n\n  Templates .nemesis/template/ :\n    ✓ 8 templates presents\n\n  Config :\n    ✓ Projet detecte : MY-PROJECT\n\n  HCM :\n    ✓ Connexion : 142ms\n    ✓ Auth : API key valide\n    ✓ Graphe : 847 noeuds, 1203 edges\n\n  Registre :\n    ✓ REGISTRY (3 membres)\n    ✓ CLAUDE.md sync (2 agents)\n\n  Agents :\n    ✓ Agent_Nemesis-CLI : memory.md present (3.2 KB)\n    ✓ Agent_Bot-CLI : memory.md present (1.8 KB)\n\n  Tout est OK.\n```\n\nChecks: directory structure (10 dirs), templates (8 files), config file, HCM connection (ping, auth, graph), registry vs CLAUDE.md sync, agent memory files.\n\n### `nemesis orch`\n\nOrchestration dashboard — monitor dispatches, escalations, and deliveries in real-time.\n\n```bash\nnemesis orch              # Auto-refresh every 2s, quit with 'q'\nnemesis orch --once       # Display once and exit\nnemesis orch --format json\n```\n\nThe daemon polls for OdMs with status `READY_TO_DISPATCH`, auto-dispatches via headless agents, and routes results through the configured routing chain.\n\n### `nemesis services`\n\nManage LLM provider connections and hook lifecycle.\n\n```bash\n# Connexions\nnemesis services connexions add       # Add provider (Anthropic, OpenAI, Gemini, Ollama, etc.)\nnemesis services connexions list      # List all connections with status\nnemesis services connexions test      # Health check (auth/endpoint)\nnemesis services connexions live      # Full validation (real LLM call + file I/O)\n\n# Service assignment\nnemesis services config               # Assign connections to services (notes, odm, mc)\nnemesis services status               # Overview of all assignments + fallback chains\n\n# Hooks\nnemesis services hooks status         # Hook state (active/inactive count)\nnemesis services hooks setup          # Enable all hooks\nnemesis services hooks reset          # Disable all hooks\n```\n\n### `nemesis notes`\n\nBrowse agent notes and CRs with filtering and timeline views.\n\n```bash\nnemesis notes                         # Interactive menu\nnemesis notes agent Agent_Dev         # View by agent\nnemesis notes timeline                # Project timeline (all agents)\nnemesis notes inspect NOTE-Dev-042    # Display note or CR by ID\nnemesis notes agent Agent_Dev --cr    # Filter CRs only\nnemesis notes agent Agent_Dev --level L3  # Filter by level\n```\n\n### `nemesis notewriter`\n\nManage agent context: notes, CRs, and session replay.\n\n```bash\nnemesis notewriter status Agent_Dev   # NoteWriter state\nnemesis notewriter cr Agent_Dev       # Generate manual CR (calls LLM)\nnemesis notewriter list Agent_Dev     # List notes and CRs\nnemesis notewriter inspect Agent_Dev NOTE-Dev-042\nnemesis notewriter replay Agent_Dev   # Replay session from JSONL log\n```\n\n### `nemesis kairos`\n\nInstall and manage Claude Code hooks for agent context injection.\n\n```bash\nnemesis kairos hooks setup            # Install 4 hooks into .claude/settings.json\nnemesis kairos hooks status           # Verify hook installation\nnemesis kairos hooks remove           # Uninstall hooks\nnemesis kairos push --to Agent_Dev --type CR_DEPOSITED  # Send event\nnemesis kairos events                 # List pending events\nnemesis kairos clear --agent Agent_Dev  # Purge event queue\n```\n\nFour hooks are installed: `SessionStart` (context injection), `UserPromptSubmit` (situation detection + turn logging), `Stop` (note generation + CR check), `PreCompact` (context re-injection).\n\n### `nemesis auth`\n\nConfigure HCM authentication.\n\n```bash\nnemesis auth login    # Configure URL + API key (test → save → sync shell RC)\nnemesis auth status   # Show active connection + live ping\nnemesis auth logout   # Remove credentials\n```\n\n### `nemesis kars`\n\nBrowse available Kairos profiles by sector.\n\n```bash\nnemesis kars                   # Interactive sector picker\nnemesis kars search --sector cybersecurity\nnemesis kars search --format json\n```\n\n### `nemesis audit`\n\nRun template-based technical audits.\n\n```bash\nnemesis audit list             # Available audit templates\nnemesis audit run              # Launch an audit (template → target → prompt generation)\nnemesis audit reports          # View generated reports\n```\n\n### `nemesis inbox`\n\nHuman document pipeline: intake → Leader dispatch → Mission Contract draft.\n\n```bash\nnemesis inbox list             # Pending documents\nnemesis inbox add spec.pdf     # Add document to inbox\nnemesis inbox process          # Dispatch to Leader for MC drafting\nnemesis inbox history          # Completed documents\n```\n\n### `nemesis run`\n\nResume an agent session.\n\n```bash\nnemesis run agent:Agent_Dev                  # Interactive session (claude --resume)\nnemesis run agent:Agent_Dev --p \"fix the bug\"  # Direct prompt (headless)\n```\n\n## Global Flags\n\n| Flag | Description |\n|------|-------------|\n| `--format json\\|text\\|yaml` | Output format (default: `text`) |\n| `--no-color` | Disable ANSI colors |\n| `--verbose` | Detailed error output |\n| `-h, --help` | Help (global and per-command) |\n| `-V, --version` | Print version |\n\n## Architecture\n\n```\nnemesis-cli/\n├── src/\n│   ├── index.js              # Entry point (#!/usr/bin/env node)\n│   ├── cli.js                # Command dispatcher + interactive menu (18 commands)\n│   ├── config.js             # Config loader + project auto-detection\n│   └── commands/             # One handler per command\n│       ├── init.js           # nemesis init\n│       ├── team.js           # nemesis team (add/list/inspect/remove)\n│       ├── project.js        # nemesis project (status/init)\n│       ├── mission.js        # nemesis mission (init/list/inspect)\n│       ├── odm.js            # nemesis odm (init/list/inspect)\n│       ├── status.js         # nemesis status\n│       ├── hcm.js            # nemesis hcm (sync/status/search)\n│       ├── doctor.js         # nemesis doctor\n│       ├── orch.js           # nemesis orch (orchestration dashboard)\n│       ├── services.js       # nemesis services (LLM connections + hooks)\n│       ├── notes.js          # nemesis notes (browse notes/CRs)\n│       ├── notewriter.js     # nemesis notewriter (agent memory management)\n│       ├── kairos.js         # nemesis kairos (hooks + event bus)\n│       ├── auth.js           # nemesis auth (HCM credentials)\n│       ├── kars.js           # nemesis kars (profile search)\n│       ├── audit.js          # nemesis audit (technical audits)\n│       ├── inbox.js          # nemesis inbox (document pipeline)\n│       ├── run.js            # nemesis run (resume agent session)\n│       └── _helpers.js       # Shared utilities (ensureProject, pickFromList)\n├── lib/\n│   ├── core/                 # Business logic (pure functions, no UI)\n│   │   ├── project.js        # initProject, detectProject, getProjectStatus\n│   │   ├── team.js           # teamAdd, teamList, teamInspect, teamRemove\n│   │   ├── registry.js       # Registry CRUD (addLane, removeLane, getLanes)\n│   │   ├── odm.js            # initOdm, listOdm, inspectOdm, setOdmStatus\n│   │   ├── mission.js        # initMission, listMissions, inspectMission\n│   │   ├── templates.js      # Template loading (priority: .nemesis > .owner > embedded)\n│   │   ├── generators.js     # Generate memory.md, onboarding prompts, CLAUDE.md updates\n│   │   ├── logger.js         # Minimal stderr logger (warn, error, debug)\n│   │   ├── secrets.js        # AES-256-GCM encryption with PBKDF2 key derivation\n│   │   ├── audit.js          # Audit template management + prompt generation\n│   │   ├── inbox.js          # Document pipeline (pending → processing → done)\n│   │   ├── connexions.js     # LLM provider connection registry\n│   │   ├── services.js       # Service configuration (assignments, fallback chains)\n│   │   ├── agent-launcher.js # Spawn Claude CLI with streaming JSON parsing\n│   │   ├── profile-picker.js # Kairos profile selection from HCM\n│   │   ├── notewriter/       # Agent memory system\n│   │   │   ├── config.js     # NoteWriter configuration (enable, timers, levels)\n│   │   │   ├── log.js        # Session turn logging (JSONL, open/close)\n│   │   │   ├── notes.js      # Note generation via LLM (L1-L5 depth)\n│   │   │   ├── cr.js         # CR generation (combine notes, LLM summary)\n│   │   │   ├── reader.js     # Timeline + filtering across notes/CRs\n│   │   │   ├── paths.js      # Path resolution (month-bucketed directories)\n│   │   │   └── registry.js   # Notes/CRs index with sequential IDs\n│   │   └── flowmap/          # Workflow state machine (XState v5)\n│   │       ├── machine.js    # 18-state workflow (F00→FIN)\n│   │       ├── api.js        # Actor management + event dispatch\n│   │       ├── persistence.js # XState snapshot I/O\n│   │       └── cli-helpers.js # Display helpers for flowmap status\n│   ├── kairos/               # Agent orchestration hooks\n│   │   ├── hook-handlers.js  # 4 hook entry points (pre/dynamic/post/compact)\n│   │   ├── hook-installer.js # Claude Code hooks installation\n│   │   ├── context-injector.js # Unified context injection via stdout\n│   │   ├── context-writer.js # Situation persistence\n│   │   ├── context-loader.js # Agent context resolution\n│   │   ├── situation-detector.js # Keyword-based situation detection\n│   │   ├── agent-runner.js   # Headless agent dispatch + result polling\n│   │   ├── dispatcher.js     # LLM response classification (LEADER/HUMAN/NOISE)\n│   │   ├── dispatcher-router.js # File-based routing for dispatch results\n│   │   ├── event-bus.js      # Async event queue (TTL, priority, per-agent)\n│   │   ├── event-router.js   # Event routing to agents\n│   │   ├── flowmap-bridge.js # Signal detection → flowmap events\n│   │   ├── pid-checker.js    # Agent PID registration + liveness\n│   │   ├── leader-rules.js   # Leader-specific dispatch/validation rules\n│   │   ├── hook-prompts.js   # Prompt templates for hooks\n│   │   └── claude-invoker.js # Claude CLI invocation wrapper\n│   ├── sync/                 # HCM + LLM communication\n│   │   ├── hcm-client.js     # HCM HTTP client (vanilla fetch, Node 20+)\n│   │   ├── sync-engine.js    # Hash-based scan/diff/sync engine\n│   │   ├── health.js         # HCM connection diagnostic\n│   │   ├── nemesis-client.js # Nemesis API client\n│   │   ├── llm-client.js     # Multi-provider LLM client\n│   │   ├── service-session.js # LLM API caller with fallback\n│   │   └── fallback-engine.js # Silent cascade across connections\n│   └── ui/                   # Terminal display\n│       ├── brand.js          # ARKA LABS ASCII logo + branded headers\n│       ├── colors.js         # ANSI color system (NO_COLOR / FORCE_COLOR aware)\n│       ├── box.js            # Unicode box drawing (emoji-aware width)\n│       ├── table.js          # ASCII table renderer\n│       ├── tree.js           # Hierarchical tree renderer\n│       ├── menu.js           # Interactive keyboard menu (arrows, j/k, scrolling)\n│       ├── prompt.js         # Interactive prompts (text, choice, confirm)\n│       ├── spinner.js        # Braille-pattern loading spinner\n│       ├── format.js         # Output formatter (JSON / YAML / text)\n│       ├── dashboard.js      # Orchestration dashboard (real-time monitoring)\n│       ├── streambox.js      # Streaming JSON output renderer\n│       ├── note-card.js      # Note/CR card components\n│       ├── note-colors.js    # Level-based color system (L1-L5)\n│       ├── note-detail.js    # Note/CR detail views\n│       ├── note-filters.js   # Filter panel UI\n│       ├── note-views.js     # Agent/timeline views\n│       └── error-hints.js    # User-friendly error suggestions\n├── templates/                # 9 embedded JSON templates\n└── test/                     # 862 tests across 88 files\n    ├── unit/                 # Pure function tests (68 files)\n    ├── integration/          # Multi-module tests with temp directories (12 files)\n    └── e2e/                  # Full workflow test\n```\n\n### How It Fits Together\n\n```\n                          ┌──────────────────┐\n                          │    HCM Graph      │\n                          │  (remote API)     │\n                          └────────▲──────────┘\n                                   │ sync (hash-based)\n┌──────────────┐          ┌────────┴──────────┐\n│  PM (human)  │◄────────►│   nemesis CLI     │\n│  via terminal│          │                   │\n└──────────────┘          │  reads/writes     │\n                          │  .nemesis/HCM/    │\n                          └────────▲──────────┘\n                                   │ JSON files\n                          ┌────────┴──────────┐\n                          │  AI Agents        │\n                          │  (Claude Code)    │\n                          │                   │\n                          │  write OdM, CR,   │\n                          │  decisions, etc.  │\n                          └───────────────────┘\n```\n\n**Data flow:** Agents produce structured JSON artifacts (OdMs, CRs, decisions) in `.nemesis/HCM/`. Kairos hooks inject context at session start, detect situations dynamically, generate notes/CRs on each turn, and route dispatch results through the configured routing chain. The orchestrator daemon (`nemesis orch`) auto-dispatches OdMs and monitors the entire lifecycle. The PM uses Nemesis CLI to observe progress, manage the team, and orchestrate work.\n\n### Design Principles\n\n1. **File-first** — All data lives in `.nemesis/HCM/` as JSON files. No local database.\n2. **Read-heavy, write-light** — The CLI reads a lot (status, inspect, list) and writes little (init, team add). Agents do the writing.\n3. **Daemon-light** — `nemesis orch` provides real-time orchestration via filesystem polling (no background service required).\n4. **Minimal dependencies** — Only xstate (workflow state machine) at runtime. All UI, crypto, and I/O use Node.js built-ins.\n5. **Portable** — Works on any repo. Auto-detects project from `.nemesis/HCM/project/CONTEXT_PROJECT_*.json`.\n\n## Configuration\n\n### Config File\n\nOptional global configuration at `~/.nemesis/config.json`:\n\n```json\n{\n  \"defaults\": {\n    \"hcm_url\": \"https://your-hcm-server.example.com\",\n    \"hcm_api_key_env\": \"HCM_API_KEY\"\n  }\n}\n```\n\n### Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `HCM_URL` | HCM API base URL | (none — set via `nemesis auth login`) |\n| `HCM_API_KEY` | API key for HCM authentication | (none) |\n| `NO_COLOR` | Disable all ANSI colors ([no-color.org](https://no-color.org)) | — |\n| `FORCE_COLOR` | Force colors even without TTY | — |\n| `NEMESIS_COLOR` | Override color detection (`0` = off, `1` = on) | — |\n| `NEMESIS_VERBOSE` | Enable debug logging to stderr (`1` = on) | — |\n\n### Project Auto-Detection\n\nThe CLI auto-detects the current project by looking for:\n\n1. `.nemesis/HCM/project/CONTEXT_PROJECT_*.json` (primary)\n2. `.owner/HCM/project/CONTEXT_PROJECT_*.json` (legacy fallback)\n\nNo project detected? Run `nemesis init` or the CLI will offer to initialize one interactively.\n\n### Template Priority\n\nWhen loading templates for new documents (OdM, CR, Mission Contract, etc.):\n\n1. `.nemesis/template/` (project-specific overrides)\n2. `.owner/template/` (legacy path)\n3. `templates/` (embedded defaults shipped with the package)\n\n## Embedded Templates\n\nNemesis ships with 9 JSON templates for structured documents:\n\n| Template | Purpose |\n|----------|---------|\n| `template_ODM-NAME-000.json` | Ordre de Mission |\n| `template_CR-ODM-NAME-000.exemple.json` | Compte-Rendu (delivery report) |\n| `template_MISSION_CONTRACT.json` | Mission Contract (work package) |\n| `template_REGISTRY-PROJECT.json` | Team registry |\n| `template_DEC-NAME-000.json` | Decision record |\n| `template_INTV-NAME-000.json` | Intervention log |\n| `template_CONTRIB-NAME.json` | Contributor card |\n| `template_TXN-NAME-000.json` | Transaction record |\n| `project-context.json` | Project context |\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/arka-squad/arkalabs-nemesis-cli.git\ncd arkalabs-nemesis-cli\n\n# Install dependencies\nnpm install\n\n# Link for local development\nnpm link\n\n# Run tests\nnpm test              # 862 tests across 88 files\nnpm run test:watch    # Watch mode\nnpm run test:coverage # With coverage report (v8, thresholds: 50% lines / 60% functions)\nnpm run lint          # ESLint check\nnpm run lint:fix      # ESLint auto-fix\n```\n\n### Test Structure\n\n862 tests across 88 files, organized in three categories:\n\n- **Unit** (`test/unit/`, 68 files) — pure function tests covering core logic, UI components, kairos hooks, notewriter, flowmap, dispatcher, event bus, secrets, logger, and more\n- **Integration** (`test/integration/`, 12 files) — multi-module tests with temp directories (init, team, mission, odm, doctor, hcm-sync, services, event-bus, orch-dashboard, nemesis-mcp)\n- **E2E** (`test/e2e/`, 1 file) — full workflow: init → team → mission → odm → sync → remove\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute.\n\n## License\n\n[Apache License 2.0](LICENSE) — ARKA LABS\n","readmeFilename":"README.md"}