A collection of tools for developers
Project description
kitbag
A collection of developer utilities wired into a single CLI.
Install
Install it globally as a uv tool so kitbag is on your PATH and works from any
directory:
uv tool install . # from a clone, or `uv tool install <git-url>`
kitbag --help
Or run it ad-hoc without installing:
uvx --from . kitbag --help
For local development, uv sync + uv run kitbag ... works too.
Data directory
All app data lives under a single root, ~/.kitbag/ (override with the
KITBAG_HOME environment variable):
~/.kitbag/
├── .env # your config (see below)
└── temp-clone/ # everything the `temp-clone` command writes
├── clones/ # throwaway clones
├── logs/ # cleanup logs
└── launch-agents/ # scheduled-cleanup plists
Configuration
Because the tool is meant to run from anywhere, put your standing config in the user-level file (create the directory if needed):
mkdir -p ~/.kitbag
cp .env.example ~/.kitbag/.env # then edit
Resolution order (highest priority first): environment variables → a .env in the
current directory (per-project override) → ~/.kitbag/.env (stable base).
Every default lives in Settings (config.py) and is
overridable by the matching upper-case env var. MINIMAX_API_KEY is the only one you
normally need to set; the rest have sensible defaults.
| Variable | Used by | Default | Purpose |
|---|---|---|---|
MINIMAX_API_KEY |
ai-commit |
— | MiniMax API key (required) |
MINIMAX_MODEL |
ai-commit |
MiniMax-M2.7 |
Model used to generate messages |
MINIMAX_API_BASE |
ai-commit |
https://api.minimax.io/v1 |
API base URL |
MINIMAX_TOKEN_BUDGET |
ai-commit |
100000 |
Max diff tokens sent to the model |
MINIMAX_MAX_OUTPUT_TOKENS |
ai-commit |
2000 |
Max tokens in the generated message |
MINIMAX_REASONING_EFFORT |
ai-commit |
minimal |
none / minimal / low / medium / high |
MINIMAX_API_TIMEOUT |
ai-commit |
120 |
Request timeout (seconds) |
MINIMAX_HTTP_RETRIES |
ai-commit |
4 |
Retries on 429/5xx |
CLONE_OPEN_VSCODE |
temp-clone |
true |
Open the clone in VS Code by default |
CLONE_CLEANUP_HOURS |
temp-clone |
12 |
Auto-delete the temp clone after N hours |
CLONES_DIR |
temp-clone |
~/.kitbag/temp-clone/clones |
Where temp clones are placed |
LOGS_DIR |
temp-clone |
~/.kitbag/temp-clone/logs |
Cleanup log location |
LAUNCH_AGENTS_DIR |
temp-clone |
~/.kitbag/temp-clone/launch-agents |
Where cleanup plists are written |
KITBAG_HOME |
all | ~/.kitbag |
Root for all app data (affects the above) |
Commands
| Command | Does |
|---|---|
ai-commit |
Generate an AI commit message for staged changes and create the commit |
temp-clone |
Clone a GitHub repo into a temp dir, open it in VS Code, auto-clean later |
ai-commit — AI commit messages
Generates a Conventional Commits message for your staged changes via MiniMax, lets you review or revise it interactively, then creates the commit. Runs against whatever git repo you're currently in.
git add -p
uv run kitbag ai-commit
temp-clone — throwaway GitHub clones
Clones a repo into a temp directory, opens it in VS Code, and schedules automatic cleanup
via macOS launchd. Requires the gh CLI (authenticated) and, for --open, the code CLI.
uv run kitbag temp-clone https://github.com/org/repo
uv run kitbag temp-clone https://github.com/org/repo --no-open --cleanup-hours 4
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kitbag-0.1.0.tar.gz.
File metadata
- Download URL: kitbag-0.1.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e29d6c0e6ab060fb2ced2070c96654e71a907ad5e1e52713ade7cab4937570c
|
|
| MD5 |
a24adacb75360d5d2dd69a23721d1534
|
|
| BLAKE2b-256 |
9eaaaabd3910a80777d390affed642fa3a5775c167ee0e6832ce4ace6d1c64b1
|
Provenance
The following attestation bundles were made for kitbag-0.1.0.tar.gz:
Publisher:
publish-to-pypi.yml on l0kifs/kitbag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kitbag-0.1.0.tar.gz -
Subject digest:
1e29d6c0e6ab060fb2ced2070c96654e71a907ad5e1e52713ade7cab4937570c - Sigstore transparency entry: 2070257558
- Sigstore integration time:
-
Permalink:
l0kifs/kitbag@cecf4203d41e37f1a19c31f4cb5acdc483e5ee4f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/l0kifs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@cecf4203d41e37f1a19c31f4cb5acdc483e5ee4f -
Trigger Event:
release
-
Statement type:
File details
Details for the file kitbag-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kitbag-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2017e18b0b1f573a5959b43d48232ca990c072764a2996bfae16b01257fcef0
|
|
| MD5 |
e263fd339ff294f3049da52611d616db
|
|
| BLAKE2b-256 |
1897b934fef8352f1d54dba6900bf911ad5fa7cb3e84e9b61e519a1b12ecddee
|
Provenance
The following attestation bundles were made for kitbag-0.1.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on l0kifs/kitbag
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kitbag-0.1.0-py3-none-any.whl -
Subject digest:
a2017e18b0b1f573a5959b43d48232ca990c072764a2996bfae16b01257fcef0 - Sigstore transparency entry: 2070257920
- Sigstore integration time:
-
Permalink:
l0kifs/kitbag@cecf4203d41e37f1a19c31f4cb5acdc483e5ee4f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/l0kifs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@cecf4203d41e37f1a19c31f4cb5acdc483e5ee4f -
Trigger Event:
release
-
Statement type: