██╗ ██╗ ██╗ ██████╗ ██╗ ██╗ ██████╗ ███████╗███████╗
██║ ██╔╝ ██║ ██╔════╝ ██║ ██╔╝██╔═══██╗██╔════╝██╔════╝
█████╔╝ ██║ ██║ █████╔╝ ██║ ██║█████╗ █████╗
██╔═██╗ ██║ ██║ ██╔═██╗ ██║ ██║██╔══╝ ██╔══╝
██║ ██╗ ██║ ╚██████╗ ██║ ██╗╚██████╔╝██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
Turn a vague project idea into concrete first steps — instantly.
You have an idea. You know it's something to do with bots, or scrapers, or machine learning. But you don't know which library to reach for, how to structure the folder, or what the first five commands should be.
kickoff answers all three in two seconds, completely offline.
Install
pip install kickoff
Usage
Offline mode (no API key needed)
kickoff "I want to build a REST API"
kickoff "scrape a website for prices"
kickoff "automate my daily report"
kickoff "train a model to classify images"
kickoff fuzzy-matches your description against a curated recipe database and prints:
- The best-matched project type
- Libraries to reach for (with a one-line reason for each)
- 5 real terminal commands to run right now
- A folder layout sketch
- The one gotcha that trips up beginners every time
AI mode (Claude-powered custom advice)
export ANTHROPIC_API_KEY=sk-ant-...
kickoff "a Slack bot that summarises threads using GPT-4" --ai
With --ai, kickoff sends your idea to Claude and gets back a fully
customised recipe — same beautiful output, tailored exactly to what you
described. Falls back to offline mode silently if the API is unavailable.
How it works
User input
│
▼
matcher.py
├─ Exact keyword scan ──── confidence: 100%
└─ thefuzz partial_ratio ── confidence: 50–99%
│ score < 50?
└──► generic fallback
│
▼ (with --ai flag)
ai.py ──► POST /v1/messages ──► claude-haiku-4-5-20251001
│ JSON response parsed into recipe shape
└─ failure? silent fallback to matcher.py
│
▼
display.py (Rich panels, colours, logo)
-
matcher.py first scans for verbatim keyword hits (e.g.
"api"in the input triggers the REST API recipe with 100 % confidence). If nothing matches exactly, it usesthefuzz.partial_ratioto find the closest recipe. Scores below 50 fall back to the generic "Software Project" recipe. -
ai.py (optional) calls the Anthropic API with a strict JSON-only system prompt and normalises the response into the same recipe shape that
display.pyexpects. -
display.py renders everything with Rich: a logo header, colour-coded panels, bold library names, green terminal commands, and a yellow gotcha warning.
Contributing recipes
Want to add a new project type? Open kickoff/recipes.py and add a new entry
to the RECIPES dictionary. Each recipe needs:
| Key | Type | Description |
|---|---|---|
name |
str |
Human-readable project type name |
keywords |
list[str] |
Words that trigger this recipe |
libraries |
list[tuple[str, str]] |
(package_name, one_line_reason) pairs |
steps |
list[str] |
Exactly 5 real terminal commands |
structure |
str |
Multi-line folder layout string |
gotcha |
str |
One specific, non-generic beginner mistake |
The steps must be real, runnable terminal commands — not descriptions.
The gotcha should be something you personally got burned by, not a generic
reminder to write tests.
Once you've added the recipe, open a PR! The more specific and opinionated the better.
Metadata
Release files for kickoff-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kickoff_cli-0.1.0.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kickoff_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.5 kB
Release files / kickoff_cli-0.1.0.tar.gz
| Download URL | kickoff_cli-0.1.0.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e16874141737ae0f624112065eb2afbe74749b32f84cec4ff6728bbd9647c21
|
|
BLAKE2b-256 checksum How to use checksums |
c0bcaa759c1abae181475866aaba9af9add27f6413e82d8a98c05cf3aa7a9556
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|
Release files / kickoff_cli-0.1.0-py3-none-any.whl
| Download URL | kickoff_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2eb80c20d42adfba3e0785b27881b881313eb035a26080bc823b07da665470ec
|
|
BLAKE2b-256 checksum How to use checksums |
fe467cf31e9b1e814e738c806083a9521a1111ebf0d26ac1ddb8ed00903a0df9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|