Enterprise-grade AI DevOps automation.
Generate, validate, and execute infrastructure & CI/CD configurations safely — with structured output enforcement, sandboxed execution, approval workflows, and hash-chained audit trails.
Quick Start · Features · Dashboard · CLI Reference · API Reference · Architecture · Docs · Contributing
- Manual IaC is slow — Writing Terraform, Kubernetes, and CI/CD configs from scratch takes hours. Teams spend more time on boilerplate than architecture.
- AI-generated configs are unsafe — LLMs produce plausible but unvalidated output. Without schema enforcement and execution controls, AI-generated infrastructure is a liability.
- Teams lack visibility into AI-driven changes — When AI generates configs, there's no audit trail, no approval gate, and no way to resume partial failures. Compliance teams can't sign off on what they can't verify.
- Node.js >= 20 (or Docker if using the container image)
# npm (recommended)
npm i -g @dojops/cli
# Shell script
curl -fsSL https://raw.githubusercontent.com/dojops/dojops/main/install.sh | sh
# Docker
docker run --rm -it ghcr.io/dojops/dojops "Create a Terraform config for S3"See docs/installation.md for detailed instructions, upgrade/uninstall, and troubleshooting.
# 1. Configure your provider
dojops config # Interactive wizard
# or: dojops provider add openai --token sk-... # Direct setup
# 2. Generate your first config
dojops "Create a Kubernetes deployment for nginx with 3 replicas"Or set environment variables directly:
export DOJOPS_PROVIDER=openai # openai | anthropic | ollama | deepseek | gemini | github-copilot
export OPENAI_API_KEY=sk-... # your API key
dojops "Create a Terraform config for S3 with versioning"dojops "Create a Terraform config for S3 with versioning"
dojops "Create a Dockerfile for a Node.js Express app"
dojops debug ci "ERROR: tsc failed with exit code 1..."
dojops analyze diff --file plan.diffDojOps routes to the right specialist agent, enforces structured JSON output via Zod schemas, and returns validated configs.
dojops init # Initialize project state + scan repo
dojops check # LLM-powered DevOps config quality check
dojops plan "Create CI/CD for Node app" # Decompose into task graph
dojops validate # Validate plan against schemas
dojops apply # Execute with approval workflow
dojops apply --resume # Resume partially-failed plans
dojops history verify # Verify audit log integrity
dojops history show <plan-id> # Inspect per-task resultsPlans are persisted, execution is sandboxed, every action is audit-logged with hash-chained integrity, and partial failures can be resumed without re-executing completed tasks.
dojops serve # Start at http://localhost:3000
dojops serve --port=8080 # Custom portThe dashboard provides a visual interface with dark industrial terminal aesthetic for all DojOps capabilities — generate configs, decompose plans, debug CI logs, analyze infra diffs, browse agents, review execution history, and monitor observability metrics (overview, security findings, audit trail integrity).
- 17 built-in specialist agents + custom agents — ops-cortex, terraform, kubernetes, CI/CD, security, Docker, cloud architecture, networking, database, GitOps, compliance, CI debugger, appsec, shell scripting, Python, observability, and DevSecOps reviewer — with weighted keyword confidence scoring. Create your own custom agents via
dojops agents create(LLM-generated or manual) - CI debugging — Paste CI logs, get structured diagnosis with error type, root cause, affected files, and suggested fixes with confidence scores
- Infra diff analysis — Risk level, cost impact, security implications, rollback complexity, and actionable recommendations for infrastructure changes
- DevOps config checker — LLM-powered quality analysis of detected DevOps files with maturity scoring (0-100), severity-ranked findings, and missing file recommendations
- 6 LLM providers — OpenAI, Anthropic, Ollama (local), DeepSeek, Google Gemini, GitHub Copilot — with dynamic model selection via provider API and temperature passthrough for deterministic reproducibility
- 13 built-in DevOps tools — GitHub Actions, Terraform, Kubernetes, Helm, Ansible, Docker Compose, Dockerfile, Nginx, Makefile, GitLab CI, Prometheus, Systemd, Jenkinsfile
- Declarative tool metadata —
.dopsmodules declarescope(write boundaries),risk(LOW/MEDIUM/HIGH self-classification),execution(deterministic/idempotent flags),updatestrategy,contextblock (v2: technology context, output guidance, best practices, Context7 libraries), and optionaliconURLs for marketplace display. Scope enforcement rejects out-of-bounds writes at runtime - Custom module system — Extend DojOps with custom modules via declarative
tool.yamlmanifests + JSON Schema. Drop a module into~/.dojops/modules/or.dojops/modules/and it's automatically available to all commands. Scaffold new modules withdojops modules init <name>. Module isolation enforces verification command whitelisting (33 allowed binaries),child_processpermission gating, and path traversal prevention - Update existing configs — Tools auto-detect existing config files, pass them to the LLM with "update/preserve" instructions, and create
.bakbackups before overwriting. Supports both auto-detection and explicitexistingContentinput - Schema-validated — Every tool input is validated against Zod schemas before execution. v1 tools also validate LLM output; v2 tools generate raw content directly
- Deep verification — Verification runs by default through external validators (terraform validate, hadolint, kubectl dry-run) before writing files. Missing verification tools are auto-installed via the toolchain. Use
--skip-verifyto disable - Idempotent YAML output — YAML keys are sorted alphabetically (GitHub Actions uses conventional key ordering) for deterministic, diff-friendly output
- Structured output — Provider-native JSON modes (OpenAI
response_format, Anthropic prefill, Ollamaformat, GeminiresponseMimeType)
- Task planner — LLM-powered goal decomposition into dependency-aware task graphs with topological execution (Kahn's algorithm)
- Risk-aware planning — Plans are automatically classified as LOW / MEDIUM / HIGH risk based on tool types and keyword analysis (IAM, production, secrets, RBAC). HIGH risk plans require explicit confirmation even with
--yes - Verification pipeline —
verify()step between generate and execute validates output with external tools (terraform validate, hadolint, kubectl dry-run) and built-in structure linters (GitHub Actions, GitLab CI). Enabled by default; use--skip-verifyto skip - Drift awareness — Pre-apply warnings for stateful tools (Terraform, Kubernetes, Helm, Ansible) remind users to verify remote state before applying local config changes
- Git dirty check —
applywarns when uncommitted changes exist in the working tree. Use--forceto skip - Atomic file writes — All file writes use temp-file + rename for crash safety (no partial writes)
- DevOps write allowlist — By default, only DevOps files (CI configs, Dockerfiles, Terraform, K8s manifests, etc.) can be written. Prevents LLM-generated code from mutating application source. Use
--allow-all-pathsto bypass - Sandboxed execution —
SandboxedFsrestricts file operations to policy-allowed paths with per-file size limits (1MB default), execution timeouts (30s default), and atomic writes. These guardrails apply uniformly to both built-in tools and custom tools - Policy engine —
ExecutionPolicycontrols write permissions, allowed/denied paths, DevOps allowlist, environment variables, timeouts, file size limits, and verification toggle - Approval workflows — Auto-approve, auto-deny, or interactive callback with diff preview before any write operation
- Resume on failure —
dojops apply --resumeskips completed tasks and retries failed ones - Deterministic replay —
dojops apply --replayforces temperature=0 and validates that provider, model, and custom tool system prompts match the plan's execution context for deterministic execution under identical provider and model conditions - Plan snapshot freezing — Plans capture DojOps version, policy hash, and tool versions at creation time. Version drift is detected at apply time (warning in normal mode, blocking in
--replaymode)
- Metrics dashboard — Overview (plans, success rate, execution time, critical issues), Security (severity breakdown, findings trend, top issues, scan history), and Audit (chain integrity, status breakdown, command distribution, timeline) — with 30-second auto-refresh
- Hash-chained audit logs — Tamper-evident JSONL audit trail with SHA-256 chain integrity verification via
dojops history verify. JSONL format is compatible with SIEM ingestion (Splunk, ELK, Datadog) - Execution locking — PID-based lock files prevent concurrent mutations with automatic stale-lock cleanup
- Rich terminal UI — Interactive prompts, spinners, styled panels, semantic log levels — powered by
@clack/prompts - Doctor diagnostics —
dojops doctorshows system health plus project metrics summary (plans, success rate, scan count, audit chain integrity). Always shows installed tools regardless of project context
- REST API — 21 endpoints exposing all capabilities over HTTP with Zod request validation, API v1 versioning (
/api/v1/prefix with backward-compatible/api/alias) - Web dashboard — Single-page app with dark terminal aesthetic, 5 tabs (Overview, Security, Audit, Agents, History), toast notifications, responsive layout
- Metrics API — 5 GET endpoints (
/api/metrics,/overview,/security,/audit,/tokens) powered byMetricsAggregatorreading.dojops/data on-demand - Configuration profiles — Named profiles for switching between providers/environments
@dojops/cli CLI entry point + rich TUI (@clack/prompts)
@dojops/api REST API (Express) + web dashboard + factory functions
@dojops/tool-registry Tool registry + custom tool system + custom agent discovery
@dojops/planner TaskGraph decomposition + topological executor
@dojops/executor SafeExecutor: sandbox + policy engine + approval + audit log
@dojops/runtime 13 built-in DevOps tools as .dops v2 modules (DopsRuntime + DopsRuntimeV2)
@dojops/scanner 10 security scanners (npm-audit, pip-audit, trivy, gitleaks, checkov, hadolint,
shellcheck, trivy-sbom, trivy-license, semgrep) + remediation
@dojops/context Context7 documentation augmentation for v2 tools
@dojops/session Chat session management + memory + context injection
@dojops/core LLM abstraction + 6 providers + 17 built-in specialist agents + CI debugger + infra diff + DevOps checker
@dojops/sdk BaseTool<T> abstract class with Zod validation + optional verify() + file-reader utilities
+ atomicWriteFileSync + restoreBackup
cli -> api -> tool-registry -> runtime -> core -> sdk
-> planner -> executor
-> scanner
-> context -> core
-> session -> core
Full architecture details in docs/architecture.md.
| Command | Description |
|---|---|
dojops <prompt> |
Generate DevOps config (default command) |
dojops generate <prompt> |
Explicit generation (same as default) |
dojops plan <prompt> |
Decompose goal into dependency-aware task graph |
dojops plan --execute <prompt> |
Plan + execute with approval workflow |
dojops apply [<plan-id>] |
Execute a saved plan |
dojops apply --skip-verify |
Skip external config verification (on by default) |
dojops apply --resume |
Resume a partially-failed plan |
dojops apply --retry |
Retry failed tasks when used with --resume |
dojops apply --replay |
Deterministic replay: temp=0, validate env match |
dojops apply --dry-run |
Preview changes without writing files |
dojops apply --force |
Skip git dirty check, HIGH risk gate, and replay validation |
dojops apply --allow-all-paths |
Bypass DevOps file write allowlist |
dojops validate [<plan-id>] |
Validate plan against schemas |
dojops explain [<plan-id>] |
LLM explains a plan in plain language |
| Command | Description |
|---|---|
dojops check |
LLM-powered DevOps config quality check (score 0-100) |
dojops check --fix |
Auto-remediate HIGH/CRITICAL findings via LLM |
dojops debug ci <log> |
Diagnose CI/CD log failures (root cause, fixes) |
dojops analyze diff --file |
Analyze infrastructure diff (risk, cost, security) |
dojops scan |
Security scan: vulnerabilities, deps, IaC, secrets |
dojops scan --security |
Run security scanners only (trivy, gitleaks) |
dojops scan --deps |
Run dependency audit only (npm, pip) |
dojops scan --iac |
Run IaC scanners only (checkov, hadolint) |
dojops scan --sbom |
Generate SBOM (CycloneDX) with hash tracking |
dojops scan --license |
Run license compliance scanners (trivy-license) |
dojops scan --fix |
Generate and apply LLM-powered remediation |
dojops scan --compare |
Compare findings with previous scan report |
dojops review [files...] |
DevSecOps review: tool validation + LLM analysis |
dojops review --context7 |
Review with Context7 documentation augmentation |
| Command | Description |
|---|---|
dojops chat |
Interactive multi-turn AI DevOps session |
dojops chat --session=NAME |
Resume or create a named session |
dojops chat --resume |
Resume the most recent session |
dojops chat --agent=NAME |
Pin conversation to a specialist agent |
dojops chat --message=TEXT |
Send a single message and exit (scriptable, also -m) |
Chat supports slash commands: /exit, /agent <name>, /plan <goal>, /apply, /scan, /history, /clear, /save.
| Command | Description |
|---|---|
dojops agents list |
List all agents (built-in + custom) |
dojops agents info <name> |
Show agent details (supports partial names) |
dojops agents create <desc> |
Create a custom agent (LLM-generated) |
dojops agents create --manual |
Create a custom agent interactively |
dojops agents remove <name> |
Remove a custom agent |
dojops modules list |
List discovered custom modules (global + project) |
dojops modules validate <path> |
Validate a custom module manifest |
dojops modules init <name> |
Scaffold a v2 .dops module (with optional AI generation) |
dojops modules publish <file> |
Publish a .dops module to the DojOps Hub |
dojops modules install <name> |
Install a .dops module from the DojOps Hub |
dojops modules search <query> |
Search the DojOps Hub for modules |
dojops toolchain list |
List system toolchain binaries with install status |
dojops toolchain install <name> |
Download binary into toolchain (~/.dojops/toolchain/) |
dojops toolchain remove <name> |
Remove a toolchain binary |
dojops toolchain clean |
Remove all toolchain binaries |
dojops inspect [<target>] |
Inspect config and/or session state (default: both) |
| Command | Description |
|---|---|
dojops history list |
View execution history |
dojops history show <plan-id> |
Show plan details and per-task results |
dojops history verify |
Verify audit log hash chain integrity |
dojops history audit |
List audit log entries |
dojops history repair |
Repair broken audit log hash chain |
dojops clean [<plan-id>] |
Remove generated artifacts from a plan |
dojops rollback <plan-id> |
Reverse an applied plan (delete created files + restore .bak backups) |
| Command | Description |
|---|---|
dojops provider |
List all providers with status (alias: list) |
dojops provider add <name> [--token KEY] |
Add/configure a provider token |
dojops provider remove <name> |
Remove a provider token |
dojops provider default <name> |
Set the default provider |
dojops provider switch |
Interactive picker to switch default provider |
dojops provider --as-default <name> |
Set default provider (shortcut) |
| Command | Description |
|---|---|
dojops config |
Configure provider, model, tokens (interactive) |
dojops config show |
Display current configuration |
dojops config profile create NAME |
Save current config as a named profile |
dojops config profile use NAME |
Switch to a named profile |
dojops config profile list |
List all profiles |
dojops auth login |
Authenticate with LLM provider |
dojops auth status |
Show saved tokens and default provider |
dojops serve [--port=N] |
Start API server + web dashboard |
dojops serve --no-auth |
Start server without API key authentication (local dev only) |
dojops serve --tls-cert --tls-key |
Enable HTTPS/TLS on the API server |
dojops serve credentials |
Generate API key for dashboard/API authentication |
dojops init |
Initialize .dojops/ + comprehensive repo scan (11 CI platforms, IaC, scripts, security) |
dojops status |
System health diagnostics + project metrics (alias: doctor) |
dojops upgrade |
Check for and install CLI updates (--check for check-only) |
| Option | Description |
|---|---|
--provider=NAME |
LLM provider: openai, anthropic, ollama, deepseek, gemini, github-copilot |
--model=NAME |
LLM model override |
--temperature=N |
LLM temperature (0-2) for deterministic reproducibility |
--profile=NAME |
Use named config profile |
--module=NAME |
Force a specific module for generate, plan, or apply (bypasses agent routing) |
--output=FORMAT |
Output: table (default), json, yaml |
--verbose |
Verbose output |
--debug |
Debug-level output with stack traces |
--quiet |
Suppress non-essential output |
--no-color |
Disable color output |
--non-interactive |
Disable interactive prompts |
--yes |
Auto-approve all confirmations (implies --non-interactive) |
--help, -h |
Show help message |
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Validation error |
| 3 | Approval required |
| 4 | Lock conflict (concurrent operation) |
| 5 | No .dojops/ project |
| 6 | HIGH security findings detected |
| 7 | CRITICAL security findings detected |
# Generate configs
dojops "Create a Terraform config for S3"
dojops "Write a Kubernetes deployment for nginx"
dojops "Set up monitoring with Prometheus"
# Update existing configs (auto-detects existing files, creates .bak backup)
dojops "Add caching to the GitHub Actions workflow"
dojops "Add a Redis service to docker-compose"
dojops "Add S3 bucket to the existing Terraform config"
# Plan and execute
dojops plan "Set up CI/CD for a Node.js app"
dojops plan --execute --yes "Create CI for Node app"
dojops apply --skip-verify # skip external validation (on by default)
dojops apply --dry-run
dojops apply --resume --yes
dojops apply --replay # Deterministic replay (temp=0, validate env)
# Diagnose and analyze
dojops debug ci "ERROR: tsc failed with exit code 1..."
dojops analyze diff --file plan.diff
dojops explain last
# DevOps quality check
dojops check
dojops check --output json
# Security scanning
dojops scan
dojops scan --security
dojops scan --fix --yes
dojops scan --compare
# Interactive chat
dojops chat
dojops chat --session myproject --agent terraform
# Toolchain management (system binaries)
dojops toolchain install terraform
dojops toolchain install kubectl
# Custom module management
dojops modules list
dojops modules init my-module # v2 .dops scaffold (AI-powered when provider is configured)
dojops modules init my-module --legacy # v1 tool.yaml scaffold
dojops modules validate my-module
# Search the DojOps Hub for modules
dojops modules search docker
dojops modules search terraform --limit 5
dojops modules search k8s --output json
# Publish & install modules from DojOps Hub (https://hub.dojops.ai)
dojops modules publish my-module.dops --changelog "Initial release"
dojops modules install nginx-config
dojops modules install nginx-config --version 1.0.0 --global
# Force a specific module (bypass agent routing)
dojops --module=terraform "Create an S3 bucket with versioning"
dojops --module=kubernetes "Create a deployment for nginx"
dojops --module=terraform plan "Set up S3 with CloudFront"
# Custom agents
dojops agents create "an SRE specialist for incident response"
dojops agents create --manual
dojops agents list
dojops agents info sre # partial name match
dojops agents remove sre-specialist
# Provider management
dojops provider # List all providers
dojops provider add openai --token sk-... # Add a provider
dojops provider add anthropic --token sk-ant-... # Add another
dojops provider switch # Interactive picker
dojops provider default anthropic # Set default directly
# Administration
dojops doctor
dojops history list
dojops history verify
dojops serve --port=8080
dojops config profile create stagingDojOps implements defense-in-depth for AI-driven infrastructure changes:
| Layer | Mechanism |
|---|---|
| Output enforcement | All LLM responses constrained to JSON schemas via provider-native modes |
| Tool isolation | Verification command whitelist (33 binaries), child_process permission enforcement, path traversal prevention |
| Schema validation | Every tool input and LLM output validated against Zod schemas before execution |
| Deep verification | External tool validation by default: terraform validate, hadolint, kubectl --dry-run=client — before file write. --skip-verify to disable |
| Policy engine | ExecutionPolicy controls write permissions, allowed/denied paths, env vars, timeouts, file size limits |
| Approval workflows | Configurable handlers: auto-approve, auto-deny, or interactive callback with diff preview |
| Sandboxed execution | SandboxedFs restricts file operations to policy-allowed paths with atomic writes and audit logging |
| Audit trail | Append-only JSONL with SHA-256 hash chaining (seq + previousHash + hash). Tamper detection via dojops history verify |
| Execution locking | PID-based lock files prevent concurrent mutations with automatic stale-lock cleanup |
| Tool | Serialization | Output Files | Verifier |
|---|---|---|---|
| GitHub Actions | YAML | .github/workflows/ci.yml |
--- |
| Terraform | HCL | main.tf, variables.tf |
terraform validate |
| Kubernetes | YAML | K8s manifests | kubectl --dry-run |
| Helm | YAML | Chart.yaml, values.yaml |
helm lint |
| Ansible | YAML | {name}.yml |
ansible-playbook |
| Docker Compose | YAML | docker-compose.yml |
--- |
| Dockerfile | Dockerfile syntax | Dockerfile, .dockerignore |
hadolint |
| Nginx | Nginx conf | nginx.conf |
--- |
| Makefile | Make syntax (tabs) | Makefile |
--- |
| GitLab CI | YAML | .gitlab-ci.yml |
--- |
| Prometheus | YAML | prometheus.yml, alert-rules.yml |
--- |
| Systemd | INI | {name}.service |
--- |
| Jenkinsfile | Groovy DSL | Jenkinsfile |
--- |
All 13 built-in tools are .dops v2 modules in packages/runtime/modules/, processed by DopsRuntimeV2 — generating raw file content directly via LLM. Tools auto-detect and update existing config files with .bak backup. All file writes are atomic (temp + rename).
DojOps includes 17 built-in agents plus support for user-defined custom agents. Custom agents are created via dojops agents create and stored as markdown README files — no source code changes needed.
| Agent | Domain | Key Capabilities |
|---|---|---|
| ops-cortex | Orchestration | Task decomposition, cross-domain routing, dependency ordering |
| terraform-specialist | Infrastructure | HCL, modules, state management, workspaces, cost optimization |
| kubernetes-specialist | Container orchestration | Deployments, Helm, RBAC, autoscaling, service mesh |
| cicd-specialist | CI/CD | GitHub Actions, GitLab CI, Jenkins, build optimization, pipelines |
| security-auditor | Security | Vulnerability scanning, secret management, IAM, threat modeling |
| observability-specialist | Observability | Prometheus, Grafana, Datadog, tracing, SLOs, alerting |
| docker-specialist | Containerization | Multi-stage builds, image optimization, registries, BuildKit |
| cloud-architect | Cloud architecture | AWS/GCP/Azure design, cost optimization, migration strategies |
| network-specialist | Networking | DNS, load balancers, VPN, CDN, service mesh, firewall rules |
| database-specialist | Data storage | PostgreSQL, MySQL, Redis, DynamoDB, replication, backup |
| gitops-specialist | GitOps | ArgoCD, Flux, drift detection, sealed secrets, progressive delivery |
| compliance-auditor | Compliance | SOC2, HIPAA, PCI-DSS, GDPR, policy-as-code (OPA/Rego) |
| ci-debugger | CI debugging | Log analysis, root cause diagnosis, flaky test detection |
| appsec-specialist | Application security | OWASP Top 10, SAST/DAST, code review, pentest methodology |
| shell-specialist | Shell scripting | Bash/POSIX, ShellCheck, error handling, automation |
| python-specialist | Python scripting | Type hints, pytest, poetry, async, CLI tools |
| devsecops-reviewer | DevOps review | Config review, version validation, deprecated syntax, security audit |
| Method | Path | Description |
|---|---|---|
GET |
/api/health |
Provider info, tool list, metricsEnabled flag |
POST |
/api/generate |
Agent-routed LLM generation |
POST |
/api/plan |
Decompose goal into task graph |
POST |
/api/debug-ci |
Diagnose CI log failures |
POST |
/api/diff |
Analyze infrastructure diff |
POST |
/api/scan |
Run security scan (all, security, deps, iac, sbom) |
POST |
/api/review |
DevSecOps review with tool validation + LLM analysis |
POST |
/api/chat |
Send chat message to a session |
POST |
/api/chat/sessions |
Create new chat session |
GET |
/api/chat/sessions |
List all chat sessions |
GET |
/api/chat/sessions/:id |
Get chat session by ID |
DELETE |
/api/chat/sessions/:id |
Delete chat session |
GET |
/api/agents |
List specialist agents |
GET |
/api/history |
Execution history |
GET |
/api/history/:id |
Single history entry |
DELETE |
/api/history |
Clear history |
GET |
/api/metrics |
Full dashboard metrics (overview + security + audit) |
GET |
/api/metrics/overview |
Plan/execution/scan aggregates |
GET |
/api/metrics/security |
Scan findings, severity trends, top issues |
GET |
/api/metrics/audit |
Audit chain integrity, command distribution |
GET |
/api/metrics/tokens |
LLM token usage tracking |
# Generate a config
curl -X POST http://localhost:3000/api/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "Create a Kubernetes deployment for nginx", "temperature": 0.7}'
# Decompose a plan
curl -X POST http://localhost:3000/api/plan \
-H "Content-Type: application/json" \
-d '{"goal": "Set up CI/CD for a Node.js app", "execute": false}'
# Debug CI logs
curl -X POST http://localhost:3000/api/debug-ci \
-H "Content-Type: application/json" \
-d '{"log": "ERROR: npm ERR! ERESOLVE unable to resolve dependency tree"}'
# Analyze infrastructure diff
curl -X POST http://localhost:3000/api/diff \
-H "Content-Type: application/json" \
-d '{"diff": "+ resource \"aws_s3_bucket\" \"main\" { bucket = \"my-bucket\" }"}'| Provider | DOJOPS_PROVIDER |
Required Env Var | Default Model |
|---|---|---|---|
| OpenAI | openai |
OPENAI_API_KEY |
gpt-4o-mini |
| Anthropic | anthropic |
ANTHROPIC_API_KEY |
claude-sonnet-4-5-20250929 |
| Ollama | ollama |
(none --- local) | llama3 |
| DeepSeek | deepseek |
DEEPSEEK_API_KEY |
deepseek-chat |
| Gemini | gemini |
GEMINI_API_KEY |
gemini-2.5-flash |
| GitHub Copilot | github-copilot |
(OAuth Device Flow) | gpt-4o |
Each provider ships with a sensible default, but you can choose any model your provider supports:
dojops config # Interactive: fetches models, shows picker
dojops config --model=gpt-4o # Set directly
dojops --model=deepseek-reasoner "..." # One-off overrideProvider: --provider > $DOJOPS_PROVIDER > config > openai
Model: --model > $DOJOPS_MODEL > config > provider default
Temperature: --temperature > $DOJOPS_TEMPERATURE > config > undefined (provider default)
Token: $OPENAI_API_KEY / $ANTHROPIC_API_KEY / ... > config token
dojops config profile create staging # Save current config as "staging"
dojops config profile use staging # Switch to staging profile
dojops config profile list # List all profiles
dojops --profile=staging "Create S3..." # One-off profile override- Node.js >= 20
- pnpm >= 8
- TypeScript >= 5.4
git clone https://github.com/dojops/dojops.git
cd dojops
pnpm install
pnpm buildpnpm build # Build all packages via Turbo
pnpm dev # Dev mode (no caching)
pnpm test # Run all 2649 tests
pnpm lint # ESLint across all packages
pnpm format # Prettier write
pnpm format:check # Prettier check (CI)
# Per-package
pnpm --filter @dojops/core test
pnpm --filter @dojops/api build
pnpm --filter @dojops/runtime lint
# Run locally (no global install)
pnpm dojops -- "Create a Terraform config for S3"
pnpm dojops -- serve --port=8080packages/
cli/ CLI entry point + TUI (@clack/prompts)
api/ REST API (Express) + web dashboard
tool-registry/ Tool registry + custom tool system + custom agent discovery
core/ LLM providers (6) + specialist agents (17 built-in) + CI debugger + infra diff + DevOps checker
planner/ Task graph decomposition + topological executor
executor/ SafeExecutor + policy engine + approval workflows + audit log
runtime/ 13 built-in DevOps tools as .dops v2 modules (DopsRuntime + DopsRuntimeV2)
scanner/ 10 security scanners + LLM-powered remediation
context/ Context7 documentation augmentation for v2 tools
session/ Chat session management + memory + context injection
sdk/ BaseTool<T> abstract class + Zod re-export + verification types + file-reader utilities
| Package | Tests |
|---|---|
@dojops/runtime |
656 |
@dojops/cli |
575 |
@dojops/core |
541 |
@dojops/tool-registry |
277 |
@dojops/api |
244 |
@dojops/scanner |
110 |
@dojops/executor |
81 |
@dojops/sdk |
55 |
@dojops/planner |
40 |
@dojops/session |
38 |
@dojops/context |
32 |
| Total | 2649 |
All packages are published under the @dojops scope:
npm login
pnpm publish-packages # Build + publish in dependency orderPublish order: sdk -> core -> context -> executor -> planner -> runtime -> tool-registry -> scanner -> session -> api -> cli
DojOps does not collect telemetry. No project data leaves your machine
except to your configured LLM provider. All generated configs, audit logs,
and scan reports are stored locally in your .dojops/ directory.
Contributions are welcome! Please see the contributing guide for development setup, coding standards, and how to add new tools and agents. See docs/architecture.md for system design patterns.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes with tests
- Run
pnpm test && pnpm lintto verify - Submit a pull request
