Skip to main content

mazu-web

A local browser UI for Mazu -- the core coding-agent CLI stays terminal-first and dependency-light; this is a separate, optional companion for people who'd rather work in a browser tab.

Ships as its own package (mazu-web, console script mazu-web) so Mazu's core install never pulls in a web framework just to run mazu chat in a terminal. Depends on mazu[documents]>=0.24.0; 140+ tests, kept in sync with the core package's own test suite.

What it does

Full parity with the terminal command surface -- every route calls straight into the same mazu package classes (CheckpointManager, MemoryStore, RunStore, the router, run_autonomous, run_explore, run_council, diagnostics) the CLI itself uses. This UI is a different way to reach the same operations, not a second implementation of them.

One known exception as of this writing: the core CLI's newer, experimental mazu memory-belief stats/review commands (observation-only belief-shadow inspection, see the core README) don't have a web equivalent yet -- use the terminal for those specifically until this catches up.

  • Chat -- the same turn logic as mazu chat, streamed over Server-Sent Events instead of printed to a terminal. Also supports attaching an image or a document (.docx/.pdf/.xlsx/.pptx, extracted to plain text), a live per-provider model picker (real API-backed, not a single hardcoded default), and reasoning-effort control for models that support it -- the model and effort controls apply to the session immediately, not just to a brand-new chat, and both warn (rather than silently no-op) when the currently selected model doesn't actually support what's being asked of it.
  • Run -- one-shot autonomous tasks (mazu run), streamed.
  • Explore -- parallel branch comparison (mazu explore), streamed, with a live multi-model picker and a best-effort test-command suggestion (pytest/npm/go/cargo/maven/gradle markers) pre-filling the optional field instead of leaving it blank.
  • Council -- ask multiple models independently, one lead synthesizes (mazu council), streamed.
  • Checkpoints -- timeline, diff, compare, inspect, prune, branch-from, and one-click rollback.
  • Memory -- search, pin/unpin, edit, forget, stats, "why would this retrieve", find/merge duplicates.
  • Skills, Runs (+ compare-branches), Router, Usage, Action log, Models, Doctor, Config -- all full read (and write, where the CLI itself allows it).
  • Curator -- an opt-in, fully autonomous background process that maintains Mazu's own state (memory, skills, run/checkpoint history, usage, config, council roster, action log) using its own, completely separate API key, matching mazu curator .... Inert until configured; every mutation is reversible and logged with a rationale.
  • Init / Setup -- works against a directory that isn't a Mazu project yet; an in-page banner and a Config-tab form do what mazu init/mazu setup would from the terminal.

Run and Explore and Council share one server-wide lock: all three wrap print()-only agent functions via sys.stdout redirection, which is process-global, not thread-local -- two concurrent captures would corrupt each other's output. Starting a second one while the first is still running gets a 409, not a silently queued mess.

Install

pip install mazu-web

Depends on the core mazu package (mazu[documents]>=0.24.0, pulled from PyPI automatically) -- note that as of this writing, Mazu 0.24.0 is a GitHub-only release, not yet published to PyPI; install both from source (pip install -e . in each repo) until it is.

Run

cd your-project        # doesn't need to be `mazu init`-ed first -- the browser handles that
mazu-web                # http://127.0.0.1:8765
mazu-web --host 127.0.0.1 --port 8765 --model deepseek:deepseek-chat --shell-allowlist git,npm,pytest

Binds to 127.0.0.1 only by default -- there is no authentication, so don't pass --host 0.0.0.0 or otherwise expose this beyond your own machine.

Development

Until Mazu 0.24.0 is published to PyPI, install it from source first (from a sibling checkout of the Mazu repo, or straight from GitHub):

pip install -e "../Mazu[documents]"     # or: pip install "mazu[documents] @ git+https://github.com/turgutino/Mazu.git"
pip install -e ".[dev]"
pytest

License

MIT, same as the core project.

Metadata

Release files for mazu-web 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mazu-web 0.4.0
File Size Uploaded
mazu_web-0.4.0.tar.gz 93.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mazu-web 0.4.0
File Interpreter ABI Platform
mazu_web-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 168.7 kB

Release files / mazu_web-0.4.0.tar.gz

Download URL mazu_web-0.4.0.tar.gz
Size 93.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f8701987faae7ab82eed6cf59887293c535b405908ae1048e7181cb56e698d48
BLAKE2b-256 checksum
How to use checksums
a346908d6d8a58d80ff5c8bb00229d0a9fc84b2c6bd4fd6d1650248d42faf4e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / mazu_web-0.4.0-py3-none-any.whl

Download URL mazu_web-0.4.0-py3-none-any.whl
Size 75.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c75197cdccecc1f25b955ab640f58d88f6c1995af14709a99af1f54fd0801a30
BLAKE2b-256 checksum
How to use checksums
68db02a030c3d48806952f2e175abfe4b4e2472343d8998a91a949db1bd39479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release 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