noamcli
v0.1.0
Published
Project bootstrapper: folder structure, AI context vault, real Expo app scaffolding, dev/prod identities, icons, GitHub publish, and knowledge packs your AI agent can read.
Maintainers
Readme
noamcli
The CLI. TypeScript, commander + @clack/prompts, bundled with tsup to a single zero-dep dist/index.js (ADR 0003).
Commands
noamcli new [name]— scaffold a project: surfaces chosen per project (mobile = a real Expo app viacreate-expo-app@latestwith identity applied, or--no-expofor a stub; site = stub), the context vault,AGENTS.md+CLAUDE.md(@AGENTS.mdimport),.claude/skills/(committed home for knowledge packs), a committed icon generator (scripts/generate-icons.js, zero-dep — run once at scaffold, re-run after editing the mark; also emits the GitHub social-preview image), git init + initial commit, optional GitHub publish viagh(auth pre-checked). Slug stays lowercase-kebab (it feeds folder/repo/package/bundle-id);--app-namecarries the human display name.noamcli config— show identity config.config set <key> <value>,config setup(interactive; also offered inline on firstnew).noamcli pack list|add <name>— knowledge packs (ADR 0004): code files + an in-repo skill under.claude/skills/noamcli-<pack>/, AGENTS.md index entry,.noamcli/packs.lock. Packs:dev-prod-variant(code+knowledge),material-you-theming,local-ai-idioms(knowledge-only). Also installable inline duringnewvia prompt or--packs.noamcli update [pack]/noamcli check— pack update story: knowledge replaced on update; locally-modified code files preserved (new version lands as<file>.new);checkexits 1 on drift (CI-friendly).
Agent-friendly by design: every prompt has a flag, --yes for non-interactive, --json for machine output (single JSON doc on stdout, diagnostics on stderr), --dry-run, exit codes as a protocol (0 ok, 1 error, 2 validation, 3 auth/tooling, 4 confirmation required).
Develop
npm install
npm run dev -- new demo --dry-run # run from source (tsx)
npm run typecheck
npm run build # tsup -> dist/index.js
npm test # unit + e2e (e2e runs the built CLI; build first)Templates live in templates/ and ship with the package. The vault template is a copy of claude-vault-template (templates/vault/); update it there when the upstream template changes.
