Metadata-Version: 2.4
Name: wizolt
Version: 0.49.3
Summary: A terminal coding agent written in Python
Author-email: hit9 <hit9@icloud.com>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/hit9/wizolt
Project-URL: Repository, https://github.com/hit9/wizolt
Project-URL: Issues, https://github.com/hit9/wizolt/issues
Project-URL: Documentation, https://wizolt.readthedocs.io
Keywords: ai,coding-agent,cli,terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Software Development
Classifier: Topic :: Terminals
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: anthropic>=1.0.0
Requires-Dist: code-symbol-index>=0.6.0
Requires-Dist: json-repair
Requires-Dist: fastmcp-slim[client]<4,>=3
Requires-Dist: httpx2>=2.12.0
Requires-Dist: openai>=3.0.0
Requires-Dist: pathspec>=1.0
Requires-Dist: pillow>=11.0
Requires-Dist: prompt-toolkit>=3.0.53
Requires-Dist: rich>=13.0
Requires-Dist: socksio>=1.0.0
Requires-Dist: websockets>=15.0.1
Provides-Extra: dev
Requires-Dist: pyright>=1.1.411; extra == "dev"
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=1.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.8; extra == "dev"
Requires-Dist: ruff==0.16.0; extra == "dev"
Dynamic: license-file

<h1 align="center">
  <img src="https://raw.githubusercontent.com/hit9/wizolt/master/docs/_static/wizolt-logo.png" alt="Wizolt logo: a blue hooded terminal mage holding a lightning staff" width="112"><br>
  wizolt
</h1>

<p align="center">
  <img src="https://raw.githubusercontent.com/hit9/wizolt/master/snapshots/wizolt3.gif" alt="wizolt working through a long session with background jobs, an edit preview, and a live status bar" width="600">
</p>

<p align="center">
  A terminal coding agent I use, maintain, and customize, shipped as a self-contained Python package.
</p>

## Safety

**Use at your own risk.** wizolt can edit files and run shell commands in the environment where it starts. It does not provide sandbox isolation; use a container or VM when needed.

## What it is

wizolt does not introduce a new kind of coding agent. It combines familiar features — reading and editing files, running commands, follow-ups, sessions, diffs, MCP, and skills — into a tool I use personally.

It works on real repositories, including its own: I use wizolt to build and maintain wizolt. Everything ships in one self-contained Python package, so I can change the behavior directly whenever I want the workflow to work differently.

Wizolt is the former minacode, which began as the single-file nanocode. The implementation outgrew both earlier names; the project history remains continuous.

<p align="center">
  <img src="https://raw.githubusercontent.com/hit9/wizolt/master/snapshots/wizolt2.gif" alt="wizolt resuming a saved session" width="600">
</p>
<p align="center"><sub>Resuming a saved session with its conversation and tool history.</sub></p>

## Highlights

- **Prompt caching:** stable request prefixes help supported providers reuse earlier work, including during compaction. Check reported cache usage with `/status`.
- **Continuity for long tasks:** automatic compaction carries working notes and recent tool activity forward, with older details available for recall. Resume saved conversation, tool history, and diffs with `-c` or `--resume`.
- **Code navigation:** find definitions, callers, references, and implementations through a searchable code index.
- **Precise edits:** target a numbered source view or an exact, unique text match. Stale or ambiguous targets are rejected before the edit is applied.
- **Review changes in place:** `/diff` shows both the latest round's changes and the net result of the session, without leaving the terminal.
- **Steer work as it happens:** send a follow-up with `Enter`, hold a separate task with `Tab`, or interrupt with `Ctrl-C` once the draft is empty.
- **Background commands:** let long-running commands continue as jobs, inspect their output, and wait for or stop them when needed.
- **Worker delegation:** give a bounded task to a worker with its own provider and reusable context. Configure it with `/worker`; the agent delegates through `Delegate`.
- **Choose your provider:** use OpenAI-compatible Chat Completions or Responses APIs, or Anthropic Messages. Optional provider-side web search shows searches and sources in the transcript.
- **MCP and skills:** connect external tools through MCP and load reusable Markdown instructions on demand.

## Install

Requires macOS or Linux, Python 3.11+, and [uv](https://docs.astral.sh/uv/).

```sh
uv tool install wizolt
wizolt --init-config
```

Add your provider to `~/.wizolt/config.toml`:

```toml
[provider]
active = "default"

[provider.default]
url = "https://api.deepseek.com"
key = "sk-..."
model = "deepseek-flash"
```

Then run:

```sh
wizolt
```

Upgrade with `uv tool upgrade wizolt`.

## Links

- [Documentation](https://wizolt.readthedocs.io/en/latest/) — full usage guide and reference.
- [Blog post](https://hit9.dev/post/nanocode) — why and how it was built.
- [code-symbol-index](https://github.com/hit9/code-symbol-index) — the code index library wizolt uses.
