The CLI for solo technical founders shipping weekly
Define · Develop · Deliver · Feedback · Iterate
Five commands. One weekly loop. Define the bet, build against it, ship, collect feedback, and decide the next move from your terminal.
$ npx loopkit initSolo technical founders are strong builders but weak weekly shippers. The loop — define → develop → deliver → feedback → iterate — was designed for teams. Every tool handles one phase. None connects them from the terminal.
LoopKit connects them.
| Command | Phase | What It Does |
|---|---|---|
loopkit init |
Define | Turn a fuzzy idea into a scored, falsifiable brief |
loopkit track |
Develop | Tasks in markdown. Commits close them automatically |
loopkit ship |
Deliver | AI writes your HN post, Twitter thread, and IH update |
loopkit pulse |
Feedback | Async feedback, AI-clustered, no meetings required |
loopkit loop |
Iterate | Sunday ritual — one decision, one post, loop closed |
These commands support the loop, but they are not the product's center of gravity.
| Command | What It Does |
|---|---|
loopkit coach |
AI coaching based on your shipping patterns |
loopkit revenue |
Track structured MRR/ARR records |
loopkit celebrate |
ASCII confetti + shareable proof card |
loopkit aliases |
Manage shell aliases for faster commands |
loopkit init --template <id> |
Pre-fill & AI-personalize tasks with 9 project templates |
These commands work, but they are intentionally behind a flag. They may move out of labs as they prove useful, or be removed if they don't.
loopkit labs on # enable all labs commands
LOOPKIT_LABS=1 loopkit radar # enable per-invocation| Command | What It Does |
|---|---|
loopkit radar |
Scan PH & HN for competitor launches in your category |
loopkit keywords |
Find low-competition keywords for content strategy |
loopkit timing |
Market timing signal — is your space heating up? |
loopkit update |
(deprecated) Monthly investor update generator |
Why are some commands in labs? The five core commands are the product. Everything else needs to earn its place by closing the loop, not by being a feature checkbox. See
docs/MOAT.mdfor why we cut features.
# Start with an idea
loopkit init
# Add tasks and build
loopkit track --add "Build the landing page"
git commit -m "feat: add hero section [#1]" # task auto-closes
# Collect feedback inline
loopkit pulse --add "The onboarding flow is confusing"
loopkit pulse --add "I wish I could export to Notion"
# Ship it on Friday
loopkit ship
# Review on Sunday
loopkit loop| Resource | Description |
|---|---|
| Quick Start | Get from zero to shipping in 15 minutes |
| User Guide | Full philosophy, tips, and how to get the most out of LoopKit |
| User Stories | Every feature mapped to real user needs with acceptance criteria |
| Scenarios | Happy paths, edge cases, and error recovery flows |
| Personas | Who LoopKit is built for and how they use it |
Five questions. AI scoring. A brief that stings when it should.
- ICP score, Problem score, MVP scope score (each 1–10)
- Overall score — averaged anchor at a glance
- Riskiest assumption named explicitly
- One async validation action you can do tonight
- Sunday Reminder: Provides a helpful hint to set a recurring calendar event or cron job to close your week
- Friday Reminder:
--cronflag installs a cron job that reminds you to ship every Friday at 4 PM - Validation Mode:
--validateflag runs a devil's advocate AI to stress-test your brief before building - Shell Aliases: Prompted on first run to install shortcuts (lk, lks, lkl, lkt) for faster commands
- Tasks live in plain markdown (
.loopkit/projects/[name]/tasks.md) - Git hook auto-closes tasks when you reference
[#N]in commits - Stale task detection after 3 days — keep, snooze, or cut
- Snoozed tasks hidden until the snooze date, then resurfaced automatically
- Cut tasks archived to
cut.md— never silently deleted - Shipping score: tasks completed / tasks planned
- Daily Standup:
loopkit track --standprompts for your #1 focus today and logs it to track daily momentum - Almost There Nudge: When shipping score is 50-70% with 2 tasks left, suggests completing them to hit 80%
- Reads your brief + completed tasks for AI context
- Generates drafts for Show HN, Twitter, and Indie Hackers
- Per-draft: use, edit in
$EDITOR, regenerate, or skip - Pre-launch checklist catches what you forgot (runs after draft generation to get to value faster)
- AI output remains calibrated by truncating long descriptions
- Auto-triggers
celebrateconfetti, but only if you actually use a draft - Ship log saved to
.loopkit/ships/YYYY-MM-DD.md
- Hosted Form & Widget: Collect feedback async via your own
/pulse/[projectId]hosted page or an embeddable JS widget on your landing page. Fully supports offline submission with automatic real-time sync. - Add responses from the CLI:
loopkit pulse --add "user said this"(automatically deduplicates) - Embeddable widget displays your actual
projectIdfor easy copy-pasting - AI clusters responses into: Fix now / Validate later / Noise
- Requires 5+ responses for clustering; shows raw list below threshold
- Tag clusters directly to your sprint
- Aggregates your week: tasks, ship logs, pulse feedback, and previous weeks' context
- Tracks your consecutive Loop Streak (e.g.
🔥 4 consecutive weeks) and acknowledges streak breaks - LoopKit Score™: Aggregates shipping score, streak multiplier, and feedback into one 0-100 metric
- Proof Card: Generates a shareable, ASCII-styled terminal card that auto-copies to your clipboard
- Revenue: Log your weekly MRR with
--revenue <amount> - AI recommends the single highest-leverage thing for next week
- Smart Unstuck Mode: kicks in if you have 0 tasks, but only after your first week
- Context-aware upgrade prompts at week 4 or 8
- Override rate tracked — warns if you're overriding AI > 50% of the time
- Generates a build-in-public post (280-char checked)
- Async Mode:
--asyncflag allows running loop any day within a 7-day window without breaking streak - Milestone System: Detects and celebrates key moments (first week, month 1, first revenue, streak breaks, pricing signals)
- Referral Prompt: At streak ≥4, prompts to share LoopKit with friends for 1-month free credit
- One decision. One post. Week done.
- ASCII confetti burst for visual celebration
- Displays your shipping score, streak, and rank title
- LoopKit Score™ breakdown
- Revenue display if MRR > 0
- Shareable proof card auto-copies to clipboard
- Public Wins:
--shareflag posts your win to the public feed at loopkit.dev/wins for accountability and discovery
- Installs shell shortcuts for common commands (lk, lks, lkl, lkt)
- Supports zsh, bash, and fish shells
- Prompted on first run after
loopkit init - Remove with
loopkit aliases --remove
LoopKit includes several features designed to build habits and drive retention:
- Milestone System: Automatically detects and celebrates 5 key moments (first week, month 1, first revenue, streak breaks, pricing signals) with encouraging messages
- Friday Reminder: Cron job (
loopkit init --cron) reminds you to ship every Friday at 4 PM with terminal notifications - Async Loop Mode:
--asyncflag allows flexible scheduling without breaking your streak - Almost There Nudge: Encourages completion when you're at 50-70% shipping score with 2 tasks remaining
- Referral System: Share your referral link (at streak ≥4) to earn 1-month free credits
- Public Wins Feed: Share your wins to the community for accountability and discovery
- Validation Mode:
--validateflag runs a devil's advocate AI to stress-test your brief before building
| Tier | Price | Includes |
|---|---|---|
| Free | $0/forever | 1 project, full CLI, git sync |
| Solo | $19/month | 5 projects, AI proxy access, Pulse hosted form |
| Pro | $39/month | Unlimited, web dashboard, Pulse widget, BYOK API key |
All project data lives in .loopkit/ in your repo. No forced cloud sync. No vendor lock-in.
When you authenticate with loopkit auth, your loop logs and ship logs optionally sync to your web dashboard — so you can view trends, benchmarks, and share cards from anywhere. Local data remains the source of truth.
.loopkit/
├── config.json
├── projects/
│ └── [project-slug]/
│ ├── brief.md
│ ├── brief.json
│ ├── tasks.md
│ └── cut.md ← cut tasks archived here
├── ships/
│ └── YYYY-MM-DD.md
├── logs/
│ └── week-N.md
└── pulse/
└── responses.json
- CLI: Node.js 20+ · Commander · Clack
- AI: Vercel AI SDK · Claude (
@ai-sdk/anthropic) - Schemas: Zod (single source of truth in
@loopkit/shared) - Web: Next.js 16 · Tailwind v4
- Backend/Auth: Convex Database & Convex Auth
- CLI-first, web-optional — developers live in the terminal
- Async by default — no meetings, no community management
- Opinionated over flexible — fewer decisions = more shipping
- AI-augmented, not AI-dependent — degrades gracefully without a key
Built for solo technical founders shipping weekly.
The best time to ship was yesterday. The second best time is now.