neckbeard
Deterministic CLI that plans, estimates, and scaffolds cloud infrastructure from a catalog
TLDR
SYNOPSIS
neckbeard command [options]
DESCRIPTION
neckbeard is a Go CLI that turns an application repository into reviewable cloud infrastructure and a monthly cost estimate. Planning, rendering, and validation are deterministic code against a bundled catalog of tested OpenTofu modules. The same binary is what the neckbeard coding-agent plugin shells out to; the agent is not required.The usual loop is analyze → plan → estimate → scaffold → validate. `analyze` writes a draft `app-profile.yaml` (facts with file:line evidence, loud assumptions, and open questions). After you answer those questions and write `neckbeard.yaml` (cloud, VCS, runtime, tier), `plan` hashes the inputs into `blueprint.yaml`. `estimate` renders into a scratch tree and prices it with Infracost 0.10.x. `scaffold` writes files under an ownership contract: files neckbeard did not just generate are never overwritten; conflicts land next to the original. `validate` reports V0 static checks only (syntax, schema, policy). Authenticated plan (V1) and deployment verification (V2) are separate and may be reported as NOT EXERCISED.The catalog covers AWS, GCP, and Azure; GitHub Actions or GitLab CI; serverless containers or Kubernetes. The supported workload is one image, up to 10 HTTP/worker/cron processes, Postgres, object storage, and secrets, deployed into existing accounts. Anything else is an explicit `unsupported` finding. Apache-2.0. Status is pre-alpha: live deploy is proven on some serverless paths; Kubernetes, GitLab, and GCP deploy are implemented and not yet exercised.Install with `go install github.com/bealesh/neckbeard/cmd/neckbeard@latest`, or let the plugin install a sha256-verified release binary on first `/neckbeard:` command.
CONFIGURATION
neckbeard.yaml
Cloud, VCS, runtime, tier, and region. Reviewed input to plan.app-profile.yaml
Evidence-backed profile from analyze, then human-edited. Open questions go under `confirmed`.blueprint.yaml
Hash-verified lockfile from plan. Scaffold and validate read this file.
COMMANDS
analyze [-dir PATH] [-out FILE] [-force]
Detect services, needs, and secrets in PATH (default .) and write a draft profile (default app-profile.yaml). Refuses to overwrite an existing profile unless -force is set.plan [-config FILE] [-profile FILE] [-catalog PATH] [-out FILE]
Resolve `neckbeard.yaml` (default) and `app-profile.yaml` (default) against the bundled catalog into blueprint.yaml. -catalog selects an external catalog index.estimate [-config FILE] [-blueprint FILE] [-infracost-bin PATH] [-out FILE] [-catalog-source SRC]
Cost report from the blueprint. Looks for infracost-0.10, then infracost, on PATH unless -infracost-bin is set. Default report: costs/estimate.md. No cloud credentials.scaffold [-blueprint FILE] [-root PATH] [-catalog-source SRC]
Render the blueprint into PATH (default .). Reports created, updated, unchanged, adopted, yours, removed, and kept paths. On conflict, writes a sibling file and exits nonzero.validate [-blueprint FILE] [-root PATH]
V0 static checks over the rendered `infra/envs/` trees. Passing V0 is not proof of deployability.doctor [-for plan|estimate|validate|all]
Check local prerequisites (default -for all). No cloud access. Prints READY/missing for OpenTofu, Infracost, Checkov, and related tools.schema neckbeard|app-profile|blueprint|environment-manifest
Print an embedded JSON schema to stdout.presets
Print supported tiers, sizing, and usage assumptions as YAML.skill install [-target agents|codex|cursor] [-scope project|user]
Install the agent skill. Default target agents (Codex, Cursor, and other SKILL.md tools); default scope project.release verb -env dev|stg|prd [options]
Experimental lifecycle: pin, promote, rollback, stage, deploy, configure-ci, receipt save/restore, and foundation/database/infra plan/apply. Documented as experimental in the skill; do not treat static validation as deployment proof.version
Print `neckbeard` and the build version.
CAVEATS
Pre-alpha. Static validation never claims the stack will deploy. estimate needs Infracost 0.10.x for live prices; unpriced resources are named in the report instead of omitted. scaffold will not silently overwrite your edits. release is experimental. The agent plugin is separate from this CLI.
