{"_id":"@alanarex/aidev-cli","_rev":"2-54b60556ad86619d9874e7135c94e0b3","name":"@alanarex/aidev-cli","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@alanarex/aidev-cli","version":"1.0.0","keywords":["ai","cli","coding-agent","codex","developer-tools","github","orchestration"],"author":{"name":"Alaa Khalil"},"license":"MIT","_id":"@alanarex/aidev-cli@1.0.0","maintainers":[{"name":"alanarex","email":"alaa.khalil.dev@gmail.com"}],"homepage":"https://github.com/Alanarex/aidev-cli#readme","bugs":{"url":"https://github.com/Alanarex/aidev-cli/issues"},"bin":{"aidev":"dist/cli.js","aidev-cli":"dist/cli.js","aidev-memory":"dist/memory/cli.js","aidev-context":"dist/context/preview-cli.js"},"dist":{"shasum":"708fc3edead1f475db51db314ce474638cba7d41","tarball":"https://registry.npmjs.org/@alanarex/aidev-cli/-/aidev-cli-1.0.0.tgz","fileCount":156,"integrity":"sha512-kLh3H4BCPXd7TvegANUirsBkQmbEkwxyVuwNeYLlb+OhoEq/szE4zxC1VjhC+ONr/Dys3iLwrrdlow21F/VT4A==","signatures":[{"sig":"MEQCIBbSyz+iGWrLuvwzJFVMj8Orxa3IngnSaeVFW8zqqc48AiA574jN7SoeXo8MZkJDEt9XdbfiXM66U1mjZNUZHGKSGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":603716},"type":"module","_from":"file:/home/runner/work/aidev-cli/aidev-cli/release-artifacts/alanarex-aidev-cli-1.0.0.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && node scripts/stamp-version.mjs","verify":"pnpm typecheck && pnpm test && pnpm build","prepack":"pnpm build","typecheck":"tsc -p tsconfig.json --noEmit","release:check":"pnpm verify && node scripts/verify-release.mjs && pnpm smoke:package","smoke:package":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"alanarex","email":"alaa.khalil.dev@gmail.com"},"_resolved":"/home/runner/work/aidev-cli/aidev-cli/release-artifacts/alanarex-aidev-cli-1.0.0.tgz","_integrity":"sha512-kLh3H4BCPXd7TvegANUirsBkQmbEkwxyVuwNeYLlb+OhoEq/szE4zxC1VjhC+ONr/Dys3iLwrrdlow21F/VT4A==","repository":{"url":"git+https://github.com/Alanarex/aidev-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Universal project bootstrapper and bounded AI task orchestrator","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.24.1","yaml":"^2.6.1","commander":"^13.0.0","@octokit/rest":"^22.0.1","@inquirer/prompts":"^7.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"tsx":"^4.19.2","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"_npmOperationalInternal":{"tmp":"tmp/aidev-cli_1.0.0_1784196222527_0.04191193970599927","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alanarex/aidev-cli","version":"2.0.0","description":"Universal project bootstrapper and bounded AI task orchestrator","type":"module","license":"MIT","author":{"name":"Alaa Khalil"},"repository":{"type":"git","url":"git+https://github.com/Alanarex/aidev-cli.git"},"bugs":{"url":"https://github.com/Alanarex/aidev-cli/issues"},"homepage":"https://github.com/Alanarex/aidev-cli#readme","keywords":["ai","cli","coding-agent","codex","developer-experience","developer-tools","github","orchestration","project-automation","terminal-ui"],"bin":{"aidev":"dist/cli.js","aidev-cli":"dist/cli.js","aidev-context":"dist/context/preview-cli.js","aidev-memory":"dist/memory/cli.js","aidev-mcp":"dist/mcp/cli.js","aidev-app":"dist/app/cli.js"},"exports":{".":{"types":"./dist/application/index.d.ts","import":"./dist/application/index.js"},"./application":{"types":"./dist/application/index.d.ts","import":"./dist/application/index.js"},"./package.json":"./package.json","./app":{"types":"./dist/app/server.d.ts","import":"./dist/app/server.js"}},"scripts":{"build":"node scripts/clean-dist.mjs && tsc -p tsconfig.build.json && node scripts/stamp-version.mjs","dev":"tsx src/cli.ts","dev:mcp":"tsx src/mcp/cli.ts","test":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","verify":"pnpm typecheck && pnpm test && pnpm build","smoke:package":"node scripts/package-smoke.mjs","release:check":"pnpm verify && node scripts/verify-release.mjs && pnpm smoke:package","prepack":"pnpm build"},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"dependencies":{"@inquirer/prompts":"^7.0.0","@octokit/rest":"^22.0.1","commander":"^13.0.0","yaml":"^2.6.1","zod":"^3.24.1"},"devDependencies":{"@types/node":"^22.10.0","tsx":"^4.19.2","typescript":"^5.7.2","vitest":"^2.1.8"},"packageManager":"pnpm@9.15.0","_id":"@alanarex/aidev-cli@2.0.0","_integrity":"sha512-kXieMpTvNhJyRtwVvhLEtR9+sXIRg6fjgIjM8wZ0pAhPJrPG3WWj/BrcwHMF4CRuoqIBxZKBQ6K8ZqkfrQLZmg==","_resolved":"/home/runner/work/aidev-cli/aidev-cli/release-artifacts/alanarex-aidev-cli-2.0.0.tgz","_from":"file:/home/runner/work/aidev-cli/aidev-cli/release-artifacts/alanarex-aidev-cli-2.0.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"11.5.1","dist":{"integrity":"sha512-kXieMpTvNhJyRtwVvhLEtR9+sXIRg6fjgIjM8wZ0pAhPJrPG3WWj/BrcwHMF4CRuoqIBxZKBQ6K8ZqkfrQLZmg==","shasum":"90f17012efaa5b7efab02a08ef6e98366088f553","tarball":"https://registry.npmjs.org/@alanarex/aidev-cli/-/aidev-cli-2.0.0.tgz","fileCount":261,"unpackedSize":1104163,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDlkVPqoQS/9q6+Ajv2MrGMC5t5csIJU8q+iz1skgpxoAiAUZ4J093DiCo3BbCyHfwMFcawPTM7TaLtKewW0kDvorQ=="}]},"_npmUser":{"name":"alanarex","email":"alaa.khalil.dev@gmail.com"},"directories":{},"maintainers":[{"name":"alanarex","email":"alaa.khalil.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aidev-cli_2.0.0_1784722321757_0.5751527022906464"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-16T10:03:42.361Z","modified":"2026-07-22T12:12:02.094Z","1.0.0":"2026-07-16T10:03:42.679Z","2.0.0":"2026-07-22T12:12:01.947Z"},"bugs":{"url":"https://github.com/Alanarex/aidev-cli/issues"},"author":{"name":"Alaa Khalil"},"license":"MIT","homepage":"https://github.com/Alanarex/aidev-cli#readme","keywords":["ai","cli","coding-agent","codex","developer-experience","developer-tools","github","orchestration","project-automation","terminal-ui"],"repository":{"type":"git","url":"git+https://github.com/Alanarex/aidev-cli.git"},"description":"Universal project bootstrapper and bounded AI task orchestrator","maintainers":[{"name":"alanarex","email":"alaa.khalil.dev@gmail.com"}],"readme":"# AIDEV-CLI\n\n[![npm version](https://img.shields.io/npm/v/@alanarex/aidev-cli?label=npm)](https://www.npmjs.com/package/@alanarex/aidev-cli)\n[![Quality](https://github.com/Alanarex/aidev-cli/actions/workflows/quality.yml/badge.svg)](https://github.com/Alanarex/aidev-cli/actions/workflows/quality.yml)\n[![GitHub release](https://img.shields.io/github/v/release/Alanarex/aidev-cli)](https://github.com/Alanarex/aidev-cli/releases)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D22-339933?logo=node.js&logoColor=white)](https://nodejs.org/)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\n**A bounded operating layer for AI-assisted software development.**\n\nAIDEV-CLI inspects an existing repository, captures project constraints, generates deterministic milestones and tasks, executes work in isolated Git worktrees, selects bounded context and accepted project memory, verifies every change, and synchronizes review state with GitHub.\n\n`ai-development` · `cli` · `codex` · `context-engine` · `memory-engine` · `orchestration` · `terminal-ui`\n\nVersion `2.0.0` adds an application API, read-only MCP gateway, schema-driven intake and planning, controlled multi-agent orchestration, bounded autonomous execution, reusable components, Codex and Claude Code providers, and a visual intake app.\n\n## Why AIDEV-CLI\n\nAI coding tools can produce code quickly, but repositories still need durable intent, bounded context, reproducible execution, verification, recovery, and review boundaries.\n\nAIDEV-CLI provides those controls:\n\n- repository files remain canonical;\n- tasks run in isolated branches and worktrees;\n- context selection is deterministic and token-bounded;\n- durable memory is explicit, reviewable, and revisioned;\n- verification cannot be skipped;\n- repair attempts, time, and tokens are bounded;\n- production-risk work requires explicit approval;\n- GitHub synchronization is idempotent;\n- the runner never merges or deploys.\n\n## Install\n\nRequirements:\n\n- Node.js 22 or newer\n- Git\n- Codex CLI for the default provider, or a compatible custom agent command\n- `GITHUB_TOKEN` or `GH_TOKEN` for GitHub synchronization\n\nGlobal installation:\n\n```bash\nnpm install --global @alanarex/aidev-cli\naidev --version\n```\n\nRun without installing globally:\n\n```bash\nnpx @alanarex/aidev-cli@2.0.0 inspect .\n```\n\nDevelopment checkout:\n\n```bash\ncorepack enable\npnpm install --frozen-lockfile\npnpm verify\npnpm dev -- inspect .\n```\n\nLinux and macOS are supported directly. Windows users should use WSL until native Windows command generation is implemented.\n\n## Quick start\n\n```bash\n# 1. Inspect the repository\naidev inspect .\n\n# 2. Generate the project operating layer\naidev init .\n\n# 3. Validate the generated contract\naidev validate .\n\n# 4. Generate deterministic milestones and tasks\naidev plan .\n\n# 5. Run the next eligible task\naidev run .\n\n# 6. Inspect execution and review state\naidev status .\n```\n\nThe primary workflow is:\n\n```text\ninspect\n  → init\n  → validate\n  → plan\n  → context and memory selection\n  → run / run-all\n  → verification and bounded repair\n  → review\n  → GitHub synchronization\n  → merge reconciliation\n```\n\nSee [Getting started](docs/GETTING_STARTED.md) for a complete walkthrough.\n\n## Structured terminal interface\n\nAIDEV-CLI replaces dense one-line output and default raw object dumps with structured sections, aligned metadata, wrapped values, status symbols, and color-aware presentation.\n\nExample:\n\n```text\nTask execution\n────────────────────────────────────────\n\n  Task Id       TASK-001\n  Status        completed\n  Branch        aidev/task-001\n  Worktree      .ai-dev/worktrees/task-001\n\nVerification\n  Passed        true\n  Attempts      1\n  Duration Ms   14820\n\nPull Request\n  Number        42\n  State         draft\n```\n\nOutput modes:\n\n```bash\n# Automatic: pretty in a TTY, plain when redirected\naidev status .\n\n# Explicit styled terminal output\naidev status . --output-mode pretty\n\n# Multiline output without ANSI escapes\naidev status . --output-mode plain\n\n# Stable machine-readable output\naidev status . --output-mode json\naidev status . --json\n```\n\nDisable color:\n\n```bash\naidev status . --no-color\nNO_COLOR=1 aidev status .\n```\n\nThe renderer is width-aware and switches narrow terminals from horizontal tables to vertical records. Color is never the only status indicator.\n\nSee [Terminal output contract](docs/TERMINAL_OUTPUT.md).\n\n## Command map\n\n### Project setup and planning\n\n```text\naidev inspect [directory]\naidev init [directory]\naidev validate [directory]\naidev plan [directory]\n```\n\nInitialization detects repository technologies through modular adapters and generates a durable project operating layer without silently overwriting tracked intent.\n\nPlanning produces validated milestones and tasks with dependencies, resources, risk, approval, verification, priority, and lifecycle metadata.\n\n### Execution and lifecycle\n\n```text\naidev run [directory]\naidev run-all [directory]\naidev queue [directory]\naidev workers [directory]\naidev scheduler-history [directory]\naidev status [directory]\naidev resume <task-id> [directory]\naidev retry <task-id> [directory]\naidev cancel <task-id> [directory]\naidev cleanup [task-id] [directory]\naidev complete <task-id> [directory]\naidev history [directory]\naidev doctor [directory]\n```\n\nCommon execution controls:\n\n```text\n--agent-command\n--profile\n--model\n--reasoning\n--sandbox\n--approval\n--attempt-timeout-ms\n--max-agent-duration-ms\n--max-agent-tokens\n--context-token-budget\n--max-repairs\n--dry-run\n--no-pr\n--keep-worktree\n--approve-risk\n--base-branch\n--json\n```\n\nEach task runs in an isolated branch and worktree. Verification is mandatory. Repair attempts, provider duration, provider tokens, context selection, and concurrency are bounded.\n\n### Context Engine\n\n```text\naidev context index [directory]\naidev context status [directory]\naidev context doctor [directory]\naidev context clean [directory]\naidev-context preview <task-id> [directory]\n```\n\nThe Context Engine builds a disposable repository index and selects bounded, task-relevant information instead of dumping the repository or replaying conversations.\n\nIt indexes summaries, symbols, imports, dependency edges, architecture areas, and nearby tests. Repository rules and source excerpts are bounded and secret-redacted before prompt rendering. Full source files and generated prompts are not persisted in execution state.\n\n### Memory Engine\n\n```text\naidev-memory add <title> <content>\naidev-memory list\naidev-memory show <memory-id>\naidev-memory update <memory-id>\naidev-memory accept <memory-id>\naidev-memory reject <memory-id>\naidev-memory archive <memory-id>\naidev-memory retrieve <task-id>\naidev-memory doctor\naidev-memory export\naidev-memory import <file>\naidev-memory migrate\n```\n\nMemory supports deterministic IDs, categories, proposed/accepted/rejected/archived states, confidence, tags, provenance, supersession, immutable revision history, diagnostics, import/export, and schema migration.\n\nOnly accepted, active, task-relevant memory enters execution prompts. Generated memory starts as proposed knowledge and requires review.\n\n### MCP control gateway\n\nAIDEV 2.0 includes a read-only MCP server for Codex and other STDIO clients:\n\n```bash\naidev-mcp --root .\naidev mcp install codex . --dry-run\naidev mcp install codex .\n```\n\nThe gateway exposes bounded project, plan, status, context, queue, memory, and execution-history reads. It cannot run tasks or mutate project state, and all project paths must stay inside the configured root.\n\nSee [MCP gateway](docs/MCP.md) for the tool and resource contract.\n\n### GitHub integration\n\n```text\naidev github sync-issues [directory]\naidev github reconcile-merges [directory]\naidev github sync-project [directory]\n```\n\nAIDEV-CLI uses Octokit directly. It can create and reuse draft pull requests, synchronize managed issues and labels, reconcile verified merged work, and optionally synchronize GitHub Projects V2.\n\nTokens are read from the process environment and are not persisted.\n\n### Codex provider\n\nBuilt-in profiles:\n\n- `fast`: low reasoning for small, low-risk work;\n- `balanced`: medium reasoning and the default profile;\n- `deep`: high reasoning for complex work.\n\n```bash\naidev run . --profile deep\naidev run . --model <model>\naidev run . --reasoning high\naidev run . --sandbox workspace-write\naidev run . --approval never\naidev codex doctor .\n```\n\nCustom process-backed providers remain available through `--agent-command`.\n\n## Generated project layer\n\n```text\nAGENTS.md\n.ai-dev/\n├── project.yaml\n├── policies.yaml\n├── manifest.yaml\n├── context.yaml\n├── github-project.yaml\n├── memory/\n│   └── memories.yaml\n├── state/\n├── worktrees/\n└── bin/\n    ├── setup\n    ├── test\n    ├── lint\n    ├── build\n    └── verify\nbacklog/\n├── milestones.yaml\n└── tasks.yaml\n```\n\nTracked project intent and accepted durable knowledge remain repository files. Runtime execution state, scheduler history, derived context indexes, and worktrees remain local and recoverable.\n\n## Documentation\n\n| Guide | Purpose |\n|---|---|\n| [Getting started](docs/GETTING_STARTED.md) | Installation through the first bounded execution |\n| [Terminal output](docs/TERMINAL_OUTPUT.md) | Pretty, plain, JSON, width, color, and stream guarantees |\n| [Component registry](docs/COMPONENT_REGISTRY.md) | Versioned discovery, compatibility, upgrades, and contribution boundaries |\n| [MCP gateway](docs/MCP.md) | Read-only tools, resources, Codex installation, and safety boundaries |\n| [Visual intake](docs/VISUAL_INTAKE.md) | Local schema-driven intake and readiness app |\n| [Release operations](docs/RELEASING.md) | Versioning, tags, npm publication, recovery, and rollback |\n| [Security policy](SECURITY.md) | Vulnerability reporting and credential boundaries |\n| [Changelog](CHANGELOG.md) | Versioned product changes |\n\n## Release verification\n\n```bash\npnpm install --frozen-lockfile\npnpm release:check\nnpm pack --dry-run\n```\n\nA `vX.Y.Z` tag pointing to a commit contained in `main` triggers the release workflow. The workflow validates the tagged source, packages the exact verified artifact, publishes `@alanarex/aidev-cli`, and creates or repairs the matching GitHub Release.\n\n## Security\n\nReport vulnerabilities privately as described in [SECURITY.md](SECURITY.md). Do not include real credentials or private repository content in reports.\n\nProvider, GitHub, and npm credentials are read from the process environment and are never persisted by AIDEV-CLI.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n### Autonomous project execution\n\nAfter intake, planning, and orchestration are ready, start bounded execution with:\n\n```bash\naidev start . --workers 4 --approve-task TASK-001\naidev start-status . --json\n```\n\nAIDEV executes dependency waves in isolated task worktrees, creates review pull requests by default, persists compact state in `.ai-dev/state/project-run.json`, and stops at approval, verification, and review boundaries. It never merges pull requests or deploys production as part of `project_start`. Use `--dry-run` to inspect the run without mutation.\n\n### Reusable component registry\n\nAIDEV can read a versioned GitHub-backed component catalog, validate manifests, select compatible exact versions, explain rejection reasons, generate reviewable installation and codemod plans, detect updates, and create non-submitted upstream proposals. Shared registry mutation always requires a separate registry worktree, maintainer, independent reviewer, and pull request. See [Component registry](docs/COMPONENT_REGISTRY.md).\n\n\n### Visual intake app\n\nStart the optional localhost-only intake interface with:\n\n```bash\naidev-app --root . --port 4173\n```\n\nThe multi-step form uses the canonical intake schema, previews readiness without writes, and creates `aidev.yaml` only after explicit submission. See [Visual intake](docs/VISUAL_INTAKE.md).\n","readmeFilename":"README.md"}