Skip to main content

Turn a vague project idea into concrete first steps — instantly.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kickoff_cli-0.1.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kickoff_cli-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file kickoff_cli-0.1.0.tar.gz.

File metadata

  • Download URL: kickoff_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for kickoff_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7e16874141737ae0f624112065eb2afbe74749b32f84cec4ff6728bbd9647c21
MD5 89363c6d3b95fe73fe5e4ab5dd012eb3
BLAKE2b-256 c0bcaa759c1abae181475866aaba9af9add27f6413e82d8a98c05cf3aa7a9556

See more details on using hashes here.

File details

Details for the file kickoff_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kickoff_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for kickoff_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2eb80c20d42adfba3e0785b27881b881313eb035a26080bc823b07da665470ec
MD5 c063eef9b5f074206f15bb48c9efbe38
BLAKE2b-256 fe467cf31e9b1e814e738c806083a9521a1111ebf0d26ac1ddb8ed00903a0df9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page