Skip to main content

PyPI version Python License PRs Welcome

 ██╗  ██╗ ██╗  ██████╗ ██╗  ██╗ ██████╗ ███████╗███████╗
 ██║ ██╔╝ ██║ ██╔════╝ ██║ ██╔╝██╔═══██╗██╔════╝██╔════╝
 █████╔╝  ██║ ██║      █████╔╝ ██║   ██║█████╗  █████╗
 ██╔═██╗  ██║ ██║      ██╔═██╗ ██║   ██║██╔══╝  ██╔══╝
 ██║  ██╗ ██║ ╚██████╗ ██║  ██╗╚██████╔╝██║     ██║
 ╚═╝  ╚═╝ ╚═╝  ╚═════╝ ╚═╝  ╚═╝ ╚═════╝ ╚═╝     ╚═╝

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)
  1. 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 uses thefuzz.partial_ratio to find the closest recipe. Scores below 50 fall back to the generic "Software Project" recipe.

  2. 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.py expects.

  3. 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)

Source distribution for kickoff-cli 0.1.0
File Size Uploaded
kickoff_cli-0.1.0.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kickoff-cli 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page