Skip to content

Releases: mukundzha/hazzel

v1.5.7: remove panels shim

Choose a tag to compare

@mukundzha mukundzha released this 22 Sep 13:08

Highlights

  • Compat shim removal (#20): hazzel.ui.panels (87 lines of pure re-exports) is deleted. The one internal importer now imports from messages directly, and the package map documents the real modules. Zero behavior change.

Install

pip install hazzel==1.5.7
# or try without installing:
uvx hazzel

Full changelog: CHANGELOG.md

v1.5.6: remove dead UI stubs

Choose a tag to compare

@mukundzha mukundzha released this 22 Sep 12:59

Highlights

  • Dead code removal (#21): show_turn_card / show_turn_from_trace always returned None and had zero callers — removed along with their re-exports from hazzel.ui and the panels compat shim. Smaller surface, same terminal.

Install

pip install hazzel==1.5.6
# or try without installing:
uvx hazzel

Full changelog: CHANGELOG.md

v1.5.5: background jobs wait/clear, tool-row dedupe

Choose a tag to compare

@mukundzha mukundzha released this 22 Sep 12:49

Highlights

  • Background jobs wait/clear: jobs(action=wait) blocks until a job finishes or the timeout passes — no more poll-spam turns. jobs(action=clear) drops finished jobs and deletes their logs. Available as /jobs wait <id> [seconds] and /jobs clear.
  • Tool-row dedupe (#26, @pollychen-lab): live tool-row append/trim handling extracted into one helper, with a regression test for loader-mode capping.
  • UI state proxy tests (#27, @binaryCoder-101): regression coverage for mutable state forwarding between hazzel.ui and hazzel.ui._state.

Install

pip install hazzel==1.5.5
# or try without installing:
uvx hazzel

Full changelog: CHANGELOG.md

v1.5.4: ask-once approvals, ui package split

Choose a tag to compare

@mukundzha mukundzha released this 21 Sep 13:55

Highlights

  • Ask-once approvals: a y/N decision now sticks for the turn. Approvals run without re-prompting, denials fail fast with guidance instead of asking again and again. Wired into run_command, write_file, edit_file, apply_edits, and git_commit.
  • UI package split: the 2.6k-line ui.py is now hazzel.ui (_state, input, stream, messages, git/, help_docs, usage, selectors). Zero behavior change — from hazzel import ui keeps working.
  • README zero-install quickstart (uvx hazzel), CI coverage report, test-count badge, vercel.json pinned to main.

Install

pip install hazzel==1.5.4
# or try without installing:
uvx hazzel

Full changelog: CHANGELOG.md

v1.5.3: quieter first run, SEO landing page

Choose a tag to compare

@mukundzha mukundzha released this 20 Sep 12:46

What's new in 1.5.3

Removed

  • Star nudge is gone — first launch no longer prints the star line, and the 0600-perm marker file (~/.config/hazzel/.star_nudged) system is removed with it. Quieter first run.

Changed

  • Landing page (site/): full SEO pass — keyword title/meta, canonical, OG/Twitter cards, SoftwareApplication + FAQPage JSON-LD, live demo GIF, Hazzel-vs-alternatives comparison, crawlable FAQ, robots.txt/sitemap.xml; dropped the locomotive-scroll dependency (~40KB) for faster loads.

pip install hazzel==1.5.3

Full changelog: https://github.com/mukundzha/hazzel/blob/main/CHANGELOG.md

v1.5.2 - README overhaul: architecture diagram, comparison table, community files

Choose a tag to compare

@mukundzha mukundzha released this 20 Sep 10:33

Added

  • README: architecture diagram (mermaid) and an honest comparison table (Hazzel vs Aider vs cloud agents).
  • Community: issue templates (bug, feature request, security routing), PR template, CODE_OF_CONDUCT.md, CONTRIBUTING.md, FUNDING.yml, GitHub Discussions.

Changed

  • README rewritten: 280 → ~200 lines, repetition cut, features compressed into a scannable table, "Recently shipped" now leads with the first external contribution.

Full changelog: https://github.com/mukundzha/hazzel/blob/main/CHANGELOG.md

v1.5.1 - confirmation prompts accept y and yes

Choose a tag to compare

@mukundzha mukundzha released this 20 Sep 09:13

Fixed

  • Confirmation prompts accept both y and yes, regardless of letter case (@Gambit-Checkmate in #7).

second external contribution — thanks @Gambit-Checkmate.

v1.5.0 - read the diff back before it lands

Choose a tag to compare

@mukundzha mukundzha released this 20 Sep 02:51

Hazzel v1.5.0 — read the diff back before it lands

Added

  • /review [--staged]: read-only review of your uncommitted diff. The current
    model gets your changed files + diffs (capped at 20 files / 12k chars,
    untracked files synthesized in) and answers with
    Summary · Risks · Missing · Before commit as rendered markdown.
  • Offline fallback: a deterministic heuristic scan (review.py) kicks in when
    no model is reachable, so /review never leaves you hanging.
  • Safety first: it never writes files, runs commands, or creates undo
    checkpoints — and it leaves the last reply set so /copy works right after.

Changed

  • Reply colors, one fixed role per color (formatter.py): brand orange
    (#ec8500) is reserved for structure (headings, bullets, panel titles,
    quote bars), a lighter tint (#ffb454) highlights the bold "main words" in
    prose, and a single cool blue (#8ab4f8) marks everything that points
    somewhere (links, @file mentions). Italics and strikethrough stay
    uncolored. Nothing is colored at random.

Fixed

  • Reply rendering (formatter.py): bold/italic no longer match inside words,
    so __init__, my_var_name, and 1*2*3 render verbatim. Tables hug their
    content instead of padding to a 20-char floor, blockquotes get an accent bar
    () with dimmed content, and anonymous code fences no longer show a
    meaningless text title.

Upgrade

pip install -U hazzel

v1.4.9 — background shell jobs

Choose a tag to compare

@mukundzha mukundzha released this 18 Sep 14:41

Long commands no longer block the loop.

Added

  • run_command(background=true) starts a detached job (dev servers, long test suites) and returns a job id; new jobs agent tool (list/poll/kill — reads are plan-mode and hazzel -p safe).
  • REPL: !command & runs in background, /jobs, /jobs , /jobs kill .
  • Per-job full logs in /tmp/hazzel-job-*.log, up to 32 jobs, remaining jobs killed on exit.
  • Stdlib only, no new dependencies. 256 tests pass, ruff clean.

v1.4.6

Choose a tag to compare

@mukundzha mukundzha released this 17 Sep 08:26

Added

  • Non-interactive print mode: hazzel -p "prompt" runs one turn, prints the reply, and exits (0 ok, 1 turn failure, 2 usage/no-key, 130 cancelled).
  • Piped stdin becomes context (git diff | hazzel -p "summarize"); bare -p uses stdin as the prompt.
  • Read-only by default (writes/runs blocked with a re-run hint); -y/--yes pre-approves them; --output-format json emits {response, model, usage} for scripts.
  • Progress UI stays off stdout; saved sessions untouched.
  • Homepage documents -p.