DOC CLI is a cross platform command line assistant for developers. It inspects your system, manages packages through the tools you already have, sets up developer environments from a plan you approve, reports on performance, and keeps a local history of what it did.
It runs on Linux, macOS, and Windows with Node.js 22.13 or newer. It does not replace your package managers. It detects them, shows exactly what it will run, and asks before changing anything.
pnpm install
pnpm build
node bin/doccli.js # opens the interactive shell in a terminal
node bin/doccli.js doctor
node bin/doccli.js system info
node bin/doccli.js setup --profile web --dry-runAfter publishing or linking the package, the command is doc-cli. The npm package name is doc-cli-assistant because the name doc-cli is already taken on the npm registry (checked on 8 November 2026). The installed command is still doc-cli.
doc-cli # interactive shell, type / for the command palette
doc-cli help # all commands by category
doc-cli packages managers
doc-cli performance report
doc-cli history- Interactive shell with a banner, tab completion, and a
/command palette with live filtering. - System inspection: hardware, operating system, environment (secrets hidden), PATH health, processes.
- Package management through adapters for npm, pnpm, Yarn (detection), Bun, pip, uv, APT, DNF, pacman, Homebrew, and winget.
- Developer starter kit wizard with profiles, dependency ordering, manual step reporting, and profile export and import.
- Performance checks, reports, cache inspection and cleanup using each tool's own command, startup item review.
- Local history with redaction, search, export, replay, and a separate audit log of approved operations.
- Project inspection and scaffolding, read only Git views, network checks, verified downloads, checksummed backups.
- Self update with channel selection, checksum verification, and rollback for standalone installs.
- Optional AI assistant and local folder plugins, both off by default.
- Shell completion for bash, zsh, fish, and PowerShell.
See docs/COMMANDS.md for every command with its options.
- Every change shows a plan with the exact commands first.
- In a terminal you are asked. Without a terminal DOC CLI refuses unless you pass
--yes. - Steps that need administrator rights are labeled.
--yesalone never approves them. You also need--allow-elevation. --dry-runshows the plan and changes nothing.- No shell strings, only executables with argument arrays, restricted to an allowlist.
- Nothing is sent anywhere unless you opt in to the AI assistant, and then you see the exact text before each request.
- No telemetry. The only network use is what you ask for, such as searches, downloads, update checks, and
network check.
Details are in docs/SECURITY.md.
This section lists what has and has not been verified, so you know what to trust.
Verified in the build environment (Ubuntu 24.04, Node.js 22):
- Type checking, linting, formatting, and 90 automated tests pass.
- The CLI builds and runs.
system,doctor,packages managers,setup,performance,security,history, andupdate checkwere run against the real machine. - Package manager command construction and output parsing are tested with mocked process output for npm, pnpm, pip, uv, APT, DNF, pacman, and Homebrew.
Not verified yet, and not claimed:
- Windows and macOS runs. The code handles their paths, shells, and
winget/brewcommands, and the CI workflow runs the test suite on all three systems, but no one has run the real installs there. Treat Windows and macOS as unverified until your CI is green and you have tried it. - Real installs through APT, DNF, pacman, Homebrew, and winget. The catalog package identifiers are marked untested in the setup plan. Use
--dry-runfirst. - Yarn operations. Yarn is detected only. Yarn's global behavior differs between Classic and modern versions, so install, list, and remove are intentionally not implemented.
- winget output parsing. Search and list show raw lines. Installed versions are not parsed.
- Standalone binaries. The updater code path (download, checksum, replace, verify, rollback) is unit tested, but this release does not build standalone executables. Releases need a pipeline that publishes
doc-cli-<os>-<arch>files and aSHA256SUMSfile. - Release signature checks and OS credential storage for AI keys. Both are planned and documented as not implemented.
- The update source.
updates.repositoryis empty until you set it to your ownowner/name. - The Escape key to close the command palette. The palette closes with Ctrl+C because the prompt library does not expose Escape.
- Package names in
package.json(repositoryURL placeholderOWNER) must be replaced before publishing.
- npm: search, list, outdated, info, install, upgrade, remove.
- pnpm: list, outdated, install, upgrade, remove.
- Yarn: detection only.
- Bun: list, install, upgrade, remove.
- pip: list, outdated, info, install, upgrade, remove. On systems that block system wide pip (PEP 668), pip will refuse and DOC CLI reports that.
- uv: list (tools), install, upgrade, remove.
- APT: search, list, outdated, info, install, upgrade, remove (uses
sudowhen you are not root). - DNF: search, list, outdated, info, install, upgrade, remove.
- pacman: search, list, outdated, info, install, upgrade (full system upgrade only), remove.
- Homebrew: search, list, outdated, info, install, upgrade, remove, with
--cask. - winget: search and list (raw), info, install, upgrade, remove.
docs/COMMANDS.md: command reference, generated.docs/CONFIGURATION.md: configuration keys and locations.docs/DEVELOPER_STARTER_KIT.md: the setup wizard and profiles.docs/PERFORMANCE.md: what is measured and what cleanup does.docs/SECURITY.md: safety model and known gaps.docs/PLUGINS.md: plugin manifests and limits.docs/ARCHITECTURE.md: layers and rules.docs/DEVELOPMENT.md: building, testing, contributing code.docs/TROUBLESHOOTING.md: common problems.
MIT. See LICENSE.