_
___(_)_ __ _ __ ___ _ __
/ __| | '_ \| '_ \ / _ \ '__|
\__ \ | | | | | | | __/ |
|___/_|_| |_|_| |_|\___|_|
turn messy intent into clean, professional output
view on github →local-first CLI agent · private by design
your data never leaves your machine · zero tracking · zero surveillance · zero compromise
no cloud · no accounts · no telemetry · runs entirely on your machine with your own LLM
no emojis · no markdown noise · paste-ready professional text that ships immediately
sinner name
generate professional names for variables, functions, and classes
sinner commit
create conventional commit messages from change descriptions
sinner squash
generate single commit message for squash merges from git history
sinner pr
generate PR descriptions from git history with title and bullets
sinner comment
informal summaries of recent changes from git history
sinner explain
explain code or technical concepts clearly and concisely
no cloud · no tracking · no bs · just you and your LLM turning chaos into clarity
clone the repo and start →
git clone https://github.com/clasei/sinner.git
cd sinner
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -e .
sinner config --init
recommended:
LM Studio
google/gemma-3n-e4b
# add your LM Studio endpoint, api key, and model ID to .env
echo "SINNER_LLM_URL=http://127.0.0.1:1234" >> .env
echo "LMSTUDIO_API_KEY=lm-studio" >> .env
echo "MODEL_ID=google/gemma-3n-e4b" >> .env
sinner commit "add some local-first config options"
sinner pr --count 5
sinner explain "what is sinner?"
local-first CLI agent · private by design
your code, your machine, your rules. no cloud means no leaks, no surveillance, no data mining.
choose your model, customize your prompts, own your workflow. no vendor lock-in, no API limits.
local inference is instant. no network latency, no rate limits, no downtime. just pure function.
stop sending your commits to the cloud. keep your workflow private. build something real.
get sinner →