Skip to main content

Hazzel

Hazzel

A small terminal coding agent. Bring your own key.

PyPI Python License

Hazzel lives in your terminal. It reads code, edits files, runs commands, and works with git — always with your approval first.

Hazzel demo

pip install hazzel
cd your-project
hazzel

Run /model, pick a provider, paste your key. Keys are stored at ~/.config/hazzel/config.json with 0600 permissions. Env vars (OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY, GROQ_API_KEY, GEMINI_API_KEY, DEEPSEEK_API_KEY, OPENROUTER_API_KEY) work too. Ollama runs local models with no key (OLLAMA_HOST overrides the default http://localhost:11434/v1).

Windows works too (PowerShell or cmd) — the full-screen menus gracefully fall back to plain prompts, no new dependencies.

❯ Fix the failing test in tests/test_agent.py

  ● read_file   tests/test_agent.py
  ● edit_file   src/hazzel/agent.py
  ● run_command pytest -q — passed

Why Hazzel?

Most coding agents keep getting bigger. Hazzel stays small on purpose.

The model suggests what to do. Hazzel decides whether and how to do it. Every mutation goes through you: file changes show a diff before they apply, shell commands ask first, and destructive git stays blocked.

If you want the most feature-heavy agent, there are better options. If you want a terminal agent you can see through, that's Hazzel.

What it does

  • Read, search, and list your codebase. Tag files with @path to put them in context.
  • Create and edit files with diff preview and approval. Undo with /undo.
  • Run shell commands with approval and timeout, sandboxed to your project root. Read-only cmds (ls, cat, git status…) skip approval.
  • Plan mode (/plan on): read-only exploration. Hazzel proposes a numbered plan, changes nothing until you run /plan off.
  • Prove mode (/prove on): smoke-checks Python edits in /tmp before you trust them.
  • Goal (/goal): pin an objective, run it with /goal run; every turn steers toward it until done.
  • Git-native: /status, /diff with file browser, /review with senior-level findings, /commit with suggested message, /branch, /log, /push, /pull, /sync. No --force, no reset --hard via shell.
  • GitHub PRs via gh: /pr lists open PRs, /pr view|diff|checks <n> reads, /pr comment|merge|close <n> and /pr create <title> write (approval first, plan-mode read-only). Needs gh auth login.
  • Model thinking stays collapsed behind an Enter-to-expand prompt — peek only when curious.
  • Read the web: fetch <url> pulls public docs and references into context (read-only).
  • Multiline input: Ctrl+J for newlines, full multiline paste.
  • Extras: /docs prints the full usage guide, /init drafts an AGENTS.md project map, /export saves the transcript, /copy grabs the last reply, /retry re-runs your last message.
  • Streams responses with per-turn token usage (/usage).

Providers

Bring your own key. No subscription.

  • Groq (default: openai/gpt-oss-120b)
  • OpenAI
  • Anthropic
  • Mistral
  • Gemini
  • DeepSeek
  • OpenRouter (100+ models through one key)
  • Ollama (local, no key)

Switch anytime with /model.

What it is not

Early-stage (v1.3.2). Expect rough edges.

No deploys, no background agents, no session persistence across restarts. It doesn't replace your editor — it stays in the terminal next to it.

Contributing

Issues and pull requests welcome.

License

AGPL-3.0-or-later. See LICENSE.


If it fits your workflow, star the repo. It helps other terminal-first developers find it.

Download files

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

Source Distribution

hazzel-0.4.0.tar.gz (109.2 kB view details)

Uploaded Source

Built Distribution

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

hazzel-0.4.0-py3-none-any.whl (112.0 kB view details)

Uploaded Python 3

File details

Details for the file hazzel-0.4.0.tar.gz.

File metadata

  • Download URL: hazzel-0.4.0.tar.gz
  • Upload date:
  • Size: 109.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for hazzel-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c654c48ca2d843b5760dbabcaa40b58bf12467f758f65455a5861ad3b7924c9e
MD5 4cf77590da268172adef8028b2a4b708
BLAKE2b-256 a251926ac2205b60ca9a196a43ea575217295fc2468270672ddcc4178451a3f3

See more details on using hashes here.

File details

Details for the file hazzel-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: hazzel-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 112.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.9

File hashes

Hashes for hazzel-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4fd60b781f6a9c72225f036d0e9c9f80d557ed531ad47f0e63235821732f74e0
MD5 83bdcab0e59b1018e1bf2ab3597ca054
BLAKE2b-256 2b8ddf5e4f8d60babdee83f0185ba639238454968b7193d5410c11272449f5a4

See more details on using hashes here.

Release history Release notifications | RSS feed

1.4.0

2 files

1.3.9

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

This release

0.4.0 This release

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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