CLI reference
Every sh1pt command with examples. Pair with getting started if you want a guided tour. Anything not covered here is reachable via sh1pt <cmd> --help.
On this page
Global conventions
A handful of flags and patterns repeat across the tree. Mention them once here so the per-command sections stay focused.
--from <input>— accepted by all four primary verbs.<input>can be a git URL, a live URL, a local path, or a manifest doc. sh1pt sniffs the kind and seeds the workflow.--json— everystatus/listsubcommand emits machine-readable JSON instead of the human view.--dry-run— supported by anything that spends money, ships bits, or sends mail. Validates without firing.--help— every command prints its own help.sh1pt --helpprints the top-level tree.- Adapter commands all follow
sh1pt <category> <name> setup|info— see adapter commands.
build
Compile artifacts for every target your project declares. Runs locally by default; pass --cloud to run in the sh1pt build farm. Entity-ops nests here because a certificate / bylaws / filing packet is, structurally, just another build artifact.
Build the targets enabled in sh1pt.config.ts (or a subset).
-t, --target <id...>— target ids to build (default: all enabled)-c, --channel <name>— release channel — stable | beta | canary (default: stable)--cloud— run in the sh1pt cloud build farm--from <input>— build from a git repo / URL / local path / manifest doc instead of CWD
sh1pt build
sh1pt build -t pkg-npm pkg-homebrew --channel beta
sh1pt build --cloud
sh1pt build --from git@github.com:you/app.git
build entity — formation, compliance, spinouts
Drives jurisdiction packs (packages/entity/<code>/) — name checks, formation plans, doc bundles, filing handoff, recurring compliance.
List installed jurisdiction packs with support levels.
sh1pt build entity pack list --json
Show entity types, filing modes, and support level for a pack (e.g. us, nz, uk).
sh1pt build entity pack info us-delaware
Initialise an entity workspace under ./entities/<slug>/.
--parent <name>— parent entity (studio / holdco)--jurisdiction <code>— pack code (us-delaware, nz, uk, hk, au, …)--type <type>— entity type (c-corp, llc, limited-company, …)--project <slug>— originating project slug (for spinouts)
sh1pt build entity init acme --jurisdiction us-delaware --type c-corp
Side-by-side jurisdiction comparison: support level, costs, manual steps.
sh1pt build entity compare --jurisdictions us-delaware,nz,uk,hk
Run the pack's name search (or queue a manual name-check task).
sh1pt build entity name-check acme --name "Acme Labs"
Generate a formation plan from the pack — required inputs, manual steps, recommended filing mode.
sh1pt build entity plan generate acme
Generate the full document bundle (certificate, bylaws/constitution, checklist, filing packet) into ./entities/<slug>/.
sh1pt build entity docs generate acme
Hand the filing off in the chosen mode.
--mode— direct | assisted | packet-only | provider | stub
sh1pt build entity filing handoff acme --mode assisted
Generate the recurring compliance calendar (annual returns, tax filings, reminders).
sh1pt build entity compliance enable acme
Show open / overdue / upcoming compliance tasks.
sh1pt build entity compliance list acme --status overdue
Lifecycle state: draft → planned → packet-ready → filed → active.
sh1pt build entity status acme
Stream the entity's immutable audit log (jsonl).
sh1pt build entity audit tail acme -n 50
Model an entity in an unsupported jurisdiction (e.g. india, south-africa, nigeria) using the stub pack.
sh1pt build entity stub init india --entity-type private-limited
Spin up an experimental pack (e.g. dao-wy) — feature-flagged, narrow use cases.
sh1pt build entity experimental init dao-wy --type dao-llc
promote
Anything that gets users — or investors. Ads, swag, organic social, podcasts, cold email, launch sites, chat-bridges, generated docs. Publishing to stores nests under promote ship.
Launch ad campaigns across every connected ad network.
--platform <id...>— subset of platforms (default: all in manifest)--budget <amount>— per-platform budget override--duration <span>— 7d | 14d | 30d | ongoing--objective <kind>— install | web-traffic | awareness | engagement | signup | purchase--dry-run— validate creatives/targeting without launching--from <input>— crawl URL / repo / path to seed campaign metadata
sh1pt promote --objective install --duration 14d
sh1pt promote --platform meta tiktok --budget 100 --dry-run
sh1pt promote --from https://example.com
Walk through org/account/funding setup per ad platform — deep links for human-only steps, optional polling.
--platform <id...>— subset--poll— re-check every 30s until all steps complete
sh1pt promote setup --platform meta reddit --poll
Aggregated metrics across active campaigns.
sh1pt promote status --json
Pause or end campaigns.
sh1pt promote stop --platform tiktok
Edit ad creatives (headlines, descriptions, images, videos) — typically via manifest.promo.creatives.
sh1pt promote creatives
promote ship — publish to stores & registries
Upload built artifacts to App Store, Play, Steam, Homebrew, npm, Docker Hub, Cloudflare Pages, etc. Pre-ship policy lint runs by default.
-t, --target <id...>— target subset-c, --channel <name>— stable | beta | canary--dry-run— simulate without uploading--skip-lint— skip policy linter (not recommended)
sh1pt promote ship --channel beta --dry-run
Scaffold sh1pt.config.ts in the current project (interactive).
sh1pt promote ship init
Connect store credentials. One OAuth per store where possible; checklists for human-only steps.
sh1pt promote ship setup --store appstore play --poll
Per-target release status (live / in-review).
sh1pt promote ship status --json
Roll back the latest release on one or more targets.
sh1pt promote ship rollback -t play
Run the policy linter (spammy titles, duplicate metadata, invalid bundle ids, reckless submission rate). Auto-runs on ship.
--strict— exit non-zero on warnings as well
sh1pt promote ship lint --strict --json
Tail build/ship logs.
sh1pt promote ship logs -t appstore -f
Manage targets in the manifest.
sh1pt promote ship target add pkg-homebrew
sh1pt promote ship target available
promote merch — print & ship swag
Connect a POD provider (Printful, Printify) and optionally a storefront (Shopify, Etsy, Gumroad).
sh1pt promote merch setup --provider merch-printful
Upload a design and mint SKUs across one or more product kinds.
--design <path>— 300+ DPI artwork--products <kind...>— tshirt hoodie sticker mug pen notebook etc.--colors / --sizes— comma-separated lists--price <usd> / --markup <percent>— pricing controls
sh1pt promote merch create --design ./logo.png --products tshirt sticker --markup 35
Current SKUs across providers.
sh1pt promote merch list --json
Push SKUs to a public storefront for sale.
sh1pt promote merch publish --storefront shopify
Bulk-ship swag for free (conferences, hackathons). Always pair with --budget-cap.
--sku <id...>— SKUs to ship--addresses <csvPath>— name,email,address1,city,region,zip,country--budget-cap <usd>— abort if total exceeds this
sh1pt promote merch giveaway --sku tshirt-blue --addresses ./guests.csv --budget-cap 500
Order status (sales + giveaways).
sh1pt promote merch orders --json
Earnings summary and withdrawal.
sh1pt promote merch payout
promote investors — VC + angel outreach
Connect CapitalReach (default outreach provider).
sh1pt promote investors setup --provider promo-capitalreach
Send personalized intros + pitch deck to a targeted investor list.
--stage— pre-seed | seed | series-a | series-b--sectors <csv>— e.g. ai,devtools,saas--check-min / --check-max— check size in $K--leads-only— filter to lead investors only--deck <path>— pitch deck path/URL--dry-run— preview list + copy without sending
sh1pt promote investors pitch --stage seed --sectors ai,devtools --check-min 50 --check-max 500 --deck ./deck.pdf
Search the investor database without launching; export CSV.
sh1pt promote investors search --stage seed --leads-only --out ./leads.csv
Funnel: sent / replies / meetings / term sheets.
sh1pt promote investors status --json
Meetings booked on your behalf (from the outreach tool's calendar).
sh1pt promote investors schedule
promote crowdfund — equity + reward campaigns
Connect a crowdfunding platform.
sh1pt promote crowdfund setup --provider promo-kickstarter
Launch a campaign or post an update. Legal filings (Wefunder Form C, etc.) must be completed manually first.
sh1pt promote crowdfund launch --provider promo-wefunder --target 50000 --duration 45
Pledges / backers / percent-funded.
sh1pt promote crowdfund status --json
promote social — organic cross-posting
Connect social accounts (OAuth where possible, app passwords elsewhere).
sh1pt promote social setup --platform social-x social-linkedin
Cross-post with per-platform adaptation (truncation, hashtag placement, media requirements).
--body <text>— core message — required--title <text>— long-form headline (LinkedIn, Dev.to, Hashnode)--hashtags <csv>— no #--media <path...>— images and/or videos--link <url>— CTA URL--platform <id...>— subset; default: all connected--schedule <iso>— publish at ISO timestamp; omit for now
sh1pt promote social post --body "Shipped v1.0 today." --hashtags devtools,launch --link https://example.com
Aggregated engagement across recent posts.
sh1pt promote social metrics --json
promote outreach — podcasts, cold email, launches
Discover relevant podcasts (Listen Notes) and send guest-pitch emails (Resend).
--niche <csv>— topic list (default: ai,startups,devtools)--min-listeners <n>— minimum listener count--language <code>— ISO language (default: en)--deck <path>— media kit / pitch deck
sh1pt promote outreach podcasts --niche ai,devtools --min-listeners 5000
Cold email sequence via Resend. CAN-SPAM / CASL / GDPR compliance is your responsibility.
--recipients <csv>— email,name,company,...--subject <text>— subject line--body <path>— markdown/html body file with {{placeholders}}--from <addr>— must be a verified Resend domain--rate <perHour>— send rate cap (default: 20)
sh1pt promote outreach email --recipients ./list.csv --subject "Quick intro" --body ./pitch.md --from anna@acme.dev
Coordinate a launch on Product Hunt, BetaList, HN Show, Indie Hackers.
sh1pt promote outreach launch --site producthunt betalist --schedule 2026-06-01T07:01:00Z
Open podcast pitches, active email sequences, upcoming launch slots.
sh1pt promote outreach status --json
promote bridge — relay between chat networks
Connect a chat network (bot token / app password / nsec / IRC nick).
sh1pt promote bridge setup --network bridge-discord bridge-matrix
Define a relay route. Format: <network>:<channel>. Repeatable destinations.
--filter <rule...>— no-bots | no-pings | no-links | no-emojis
sh1pt promote bridge connect discord:#general matrix:#general --filter no-bots
Run / stop the bridge daemon (persistent — pair with deploy-fly for HA).
sh1pt promote bridge start --detach
sh1pt promote bridge stop
Active routes + message counts + last-seen per network.
sh1pt promote bridge status --json
promote docs — generated documents
Produce a doc from markdown via Marp / Google Slides / pandoc / LuminPDF.
--kind— pitch-deck | one-pager | sales-deck | case-study | press-kit | whitepaper | proposal--format— pdf | pptx | docx | html | md--markdown <path>— source (default: ./deck.md)--template <id>— Google Slides id / Marp theme / pandoc reference doc--provider <id>— docs-marp | docs-gslides | docs-pandoc | docs-lumin--upload-to-lumin— auto-upload PDF for a shareable viewer link
sh1pt promote docs generate --kind pitch-deck --format pdf --markdown ./deck.md --provider docs-marp
Recently generated docs.
sh1pt promote docs list --json
scale
Cloud capacity ops: provisioning, DNS round-robin, rollouts, rightsizing. Raw provisioning lives under scale deploy.
Print help. With --from, probes the input and proposes scaling actions.
--from <input>— URL / repo / local path to probe
sh1pt scale --from https://api.example.com
Buy more instances of the current SKU. Routes through scale deploy under the hood.
--instances <n>— how many to add--provider <id>— cloud provider (default: same as existing fleet)--max-hourly-price <usd>— abort if total/hr would exceed this
sh1pt scale up --instances 3 --max-hourly-price 1.50
Tear down instances (cheapest / least-healthy first).
sh1pt scale down --instances 1
Set auto-scale rules. sh1pt cloud polls metrics and runs scale up/down on your behalf.
--min / --max— instance count bounds--target-cpu <percent>— utilization to maintain (default: 70)--cooldown <seconds>— minimum gap between scale events
sh1pt scale auto --min 2 --max 10 --target-cpu 65 --cooldown 300
Wire round-robin DNS so traffic spreads across the fleet.
--provider— dns-porkbun | dns-cloudflare--domain <fqdn>— e.g. api.example.com--ttl <seconds>— default 60--proxied— cloudflare only — orange cloud
sh1pt scale dns --provider dns-cloudflare --domain api.example.com --proxied
Stage a new version across the fleet.
--version <id>— release id to roll out--strategy— canary | blue-green | rolling--percent <n>— canary only — start at N% of traffic
sh1pt scale rollout --version v1.4.2 --strategy canary --percent 10
Spend totals + per-provider breakdown + rightsizing suggestions.
sh1pt scale cost --json
Current fleet: instance count, DNS records, load distribution.
sh1pt scale status --json
scale deploy — raw provisioning
Connect cloud provider accounts (RunPod, DigitalOcean, Vultr, Hetzner, Atlantic.Net).
sh1pt scale deploy setup --provider cloud-runpod cloud-digitalocean
Price-check a spec across every connected provider before provisioning.
--kind— cpu-vps | gpu | bare-metal | managed-db | block-storage | object-storage--cpu / --memory <gb>— CPU/RAM--gpu <model> / --gpu-count <n>— GPU model + count--region <id>— region preference--spot— accept interruptible / spot instances
sh1pt scale deploy quote --kind gpu --gpu A100 --gpu-count 1 --spot
Spin up a new instance. Always pair with --max-hourly-price for GPUs.
--provider— e.g. cloud-runpod, cloud-digitalocean--kind— see quote--max-hourly-price <usd>— abort if quote exceeds this--dry-run— show the plan without billing
sh1pt scale deploy provision --provider cloud-runpod --kind gpu --gpu A100 --max-hourly-price 4.00
All instances sh1pt is tracking across providers.
sh1pt scale deploy list --json
Tear down an instance (stops billing).
sh1pt scale deploy destroy ix-abc123 --provider cloud-runpod
Health + hourly cost.
sh1pt scale deploy status ix-abc123 --provider cloud-runpod
iterate
Pull metrics → agent proposes changes → apply → ship. The loop. Powered by the AI-CLI adapters under iterate agents.
Print help. With --from, attaches an observation loop to an existing URL/repo/path.
--from <input>— URL / repo / local path / manifest doc
sh1pt iterate --from https://example.com
Single-shot cycle: pull metrics → propose changes → confirm → ship.
--agent— claude | codex | qwen (default: claude)--scope— copy | pricing | onboarding | perf | bugs | all--auto-apply— skip confirmation (pair with --max-files)--max-files <n>— hard cap on files the agent may touch (default: 5)
sh1pt iterate run --scope copy --auto-apply --max-files 3
Daemon mode — run a cycle on every significant metric change.
--agent— agent id--interval <seconds>— re-check interval (default: 3600)--quiet-hours <start-end>— e.g. 22-08 to pause overnight
sh1pt iterate watch --agent claude --interval 1800 --quiet-hours 22-08
Declare success metrics iterate steers toward. With no args, lists current goals.
sh1pt iterate goals conversion=8% cpi=2.00 churn=5%
Spawn an A/B experiment around a hypothesis.
--variant <text...>— the B-side change; A is current state--traffic <percent>— percent routed to B (default: 50)--min-sample <n>— minimum events before stopping (default: 1000)
sh1pt iterate test "shorter headline lifts signup" --variant "Ship faster." --traffic 50 --min-sample 2000
Active and recently-ended experiments with significance.
sh1pt iterate experiments --json
iterate agents — orchestrate AI coding CLIs
Which agent CLIs are installed on this machine.
sh1pt iterate agents list
Install + auth the agent CLIs you want sh1pt to drive.
--agent <id...>— subset (default: claude codex qwen)
sh1pt iterate agents setup --agent claude codex
Fire a one-shot prompt at a specific agent.
--files <path...>— files the agent should focus on--model <id>— model override
sh1pt iterate agents run claude "tighten the hero copy" --files app/page.tsx
Interactive session with an agent (the app-generation fast path).
--recipe <id>— preload a recipe prompt (e.g. waitlist-crypto-investor)
sh1pt iterate agents talk claude --recipe waitlist-crypto-investor
Generate a new project from a recipe (one-shot, non-interactive).
--agent— claude | codex | qwen--recipe <id>— e.g. waitlist-crypto-investor--boilerplate <id>— next-supabase | expo-supabase | tauri-supabase | chrome-ext-react | bun-hono-supabase--out <dir>— output directory (default: ./generated)
sh1pt iterate agents generate --recipe waitlist-crypto-investor --boilerplate next-supabase --out ./my-app
login
Authenticate with sh1pt cloud (device-code flow). Token is written to ~/.sh1pt/credentials. Self-host core works without an account; cloud features need it.
sh1pt login
secret
Cloud-vaulted credentials per project. sh1pt prompts on first need and stores in the encrypted vault — no .env juggling.
Set a secret (value prompted if omitted).
sh1pt secret set OPENAI_API_KEY
Print a secret (requires interactive confirmation).
sh1pt secret get OPENAI_API_KEY
List secret keys (never values).
sh1pt secret list
Delete a secret.
sh1pt secret rm OPENAI_API_KEY
config
Read + edit sh1pt.config.ts from the CLI without opening the file.
Print the resolved (merged with defaults) manifest.
sh1pt config show --json
config payments
Show enabled providers and which is the default.
sh1pt config payments list
Enable a provider.
--default— also set as defaultProvider
sh1pt config payments add payment-stripe --default
Disable a provider (keeps it configured but enabled: false).
sh1pt config payments remove payment-paypal
Set the default payment provider.
sh1pt config payments default payment-coinpay
Platform fee in basis points (1500 = 15%, marketplace boilerplates).
sh1pt config payments fee 1500
config stack
Supported and planned stacks.
sh1pt config stack list
Set the stack — node | bun | python | rust | custom. Prompts if omitted.
sh1pt config stack set bun
Auto-detect from package.json / pyproject.toml / Cargo.toml / *.csproj / CMakeLists.txt.
sh1pt config stack detect
config vcs
Pick a VCS provider — vcs-github | vcs-gitlab | vcs-gitea | none. Prompts if omitted.
sh1pt config vcs set vcs-github
Walk through setting GITHUB_TOKEN / GITLAB_TOKEN / GITEA_TOKEN in the vault.
sh1pt config vcs auth --provider vcs-github
Create a release from current HEAD with optional asset uploads.
--name <text>— release name--body <path>— markdown release notes--draft / --prerelease— release flags--asset <path...>— files to attach
sh1pt config vcs release v1.0.0 --name "v1.0.0" --body ./CHANGELOG.md --asset ./dist/sh1pt.tgz
Open a PR/MR from a branch (used by iterate to file agent changes).
--head— source branch--base— target (default: main)--title— PR title--body <path>— PR body file--draft— open as draft
sh1pt config vcs pr --head agent/copy-tweaks --title "Tighten hero copy"
Register a webhook from the VCS provider → sh1pt cloud.
sh1pt config vcs hook add --events push,pull_request,release
config webhooks
Register a webhook target (discord, slack, telegram, teams, generic). Walks the adapter's setup flow.
--events <csv>— which events fire this target (default: *)--name <label>— friendly name
sh1pt config webhooks add discord
Disable a webhook target.
sh1pt config webhooks remove discord
Fire a stub event at a registered target.
sh1pt config webhooks test slack --event ship.published
All configured outbound targets + subscription URLs.
sh1pt config webhooks list --json
Subscribe an external URL to sh1pt events (HMAC-signed POSTs).
--events <csv>— event names or * (default: *)--description <text>— human label
sh1pt config webhooks sub add https://example.com/hooks/sh1pt --events ship.published,ship.rolled-back
Remove a subscription.
sh1pt config webhooks sub remove sub_abc123
skills
Package and promote SKILL.md agent skills across marketplaces (uGig, ClawHub, skills.sh, LobeHub, Goose, Kilo, AI Skillstore, FreeMyGent, ClawMart, Manus, VS Code Agent Skills, Moltbook, AgentHub).
Create sh1pt.skill.json metadata for a SKILL.md (alias: sh1pt skills create).
--skill-file <path>— path to SKILL.md (default: ./SKILL.md)--out <path>— manifest output (default: ./sh1pt.skill.json)--name / --title / --description / --tagline— listing metadata--category <name>— default: Automation--tags <csv>— default: skills,automation--price <sats>— 0 = free--source-url <url>— public raw SKILL.md or repo URL
sh1pt skills new --skill-file ./SKILL.md --title "PR triage" --price 0
Publish (or print marketplace publish steps) for a skill.
--manifest <path>— default: ./sh1pt.skill.json--marketplace <id...>— specific marketplace ids--all— every known marketplace--dry-run— print actions without invoking CLIs
sh1pt skills publish --all --dry-run
List known skill marketplaces and their publish methods.
sh1pt skills marketplaces
self-management
sh1pt detects how it was installed (pnpm / bun / aube / npm / deno) and shells out to the same package manager.
Update sh1pt to the latest release. Alias: sh1pt upgrade.
sh1pt update
Uninstall sh1pt. Alias: sh1pt uninstall. Prompts before deleting ~/.config/sh1pt/.
--keep-config— keep ~/.config/sh1pt/ (config + vault)
sh1pt remove --keep-config
Adapter commands
Every adapter category gets a top-level command that mirrors the filesystem under packages/<category>/<name>/. Two subcommands per adapter — setup (lazy-imports the npm package and runs its setup flow, persisting to ~/.config/sh1pt/config.json) and info (shows what the CLI knows without loading the package). Adapters are optional dependencies; missing packages print an install hint instead of crashing.
sh1pt <category> list
sh1pt <category> <name> setup
sh1pt <category> <name> info
pnpm add -g @profullstack/sh1pt-<prefix>-<name>
Categories
Examples
sh1pt bots discord setup
sh1pt targets deploy-vercel info
sh1pt cloud list
sh1pt webhooks generic setup