A single, local-first, model-agnostic, tool-using AI agent.
Project description
Heya
Heya is a single, local-first AI agent that runs in your terminal. One model, one agent, a toolbox. It reads a request, decides what to do, calls tools, and loops until the task is done.
The model is a configuration choice, not part of the design. The same loop runs against a small local model through Ollama or a frontier cloud model through OpenRouter, OpenAI, LM Studio, or anything that speaks the OpenAI chat API. Point it at whatever you have. Your prompts and your data stay on your machine.
It is built in plain Python with no agent framework, so you can see exactly what every part does.
Why you might use it
Most agents are general. Heya is general too, but it carries a real specialty: a WordPress and WooCommerce diagnostic assistant that takes a bug from a ticket to a proven answer. And because it is model-agnostic and local-first, you run all of that on your own models, with no vendor lock-in and nothing leaving your machine.
It also hosts the Claude Code ecosystem. Your existing Claude skills, plugins, hooks, commands, and sub-agents work in Heya with no re-install, so you bring what you already have.
What it can do
- Diagnostic assistant. Give Heya a bug report, a ticket, or a log. It reproduces the issue on a disposable WordPress Playground (or a dev site), finds the root cause, proposes and verifies a fix, and hands you a paste-ready triage comment with a verdict, impact, suggested priority, evidence, and a one-click repro link. Every stage is evidence-gated: no evidence, no verdict. It can also rank a backlog into a pick-list so you know what to work on.
- Hosts your Claude ecosystem. Discovers your
~/.claudeskills and plugins and makes them available through aSkilltool, runs lifecycle hooks (off by default), and turns Claude sub-agent and command definitions into Heya roles and commands. - Sub-agents. Delegate a self-contained task to a fresh, context-isolated child agent, or fan several read-only children out in parallel and synthesize their reports.
- MCP client. Connect Model Context Protocol servers over stdio or HTTP, with OAuth, sampling, elicitation, and logging.
- Memory. Heya remembers facts across sessions in plain markdown files you can read and edit.
- Code review. A deterministic gather, fan-out, adversarially-verify, synthesize pipeline that reports real issues and says "nothing blocks" rather than inventing findings.
- Cost and context controls. An optional cheaper model for forgiving work, a per-task token budget, and context compaction so long sessions keep working on small-window local models.
- Files, shell, web, and a real browser. All writes, shell commands, and browser clicks ask before they run. Reads run on their own. Everything is confined to an allow-list of folders.
Install
You need Python 3.11 or newer. The package is heya-agent; the command is
heya.
pipx install heya-agent
pipx installs it into its own isolated environment and
puts heya on your PATH. If you do not have pipx, pip install heya-agent
works too. Then run heya init to set up a model.
The browser tools are optional, since they pull in Playwright and a Chromium binary. Add them when you want them:
pipx install "heya-agent[browser]"
python -m playwright install chromium
Heya runs fine without them. The browser tools just return an install hint until you do.
Connecting MCP servers (hosting other tools over the Model Context Protocol)
needs the mcp extra:
pipx install "heya-agent[mcp]"
From source (for contributors)
git clone git@github.com:shameemreza/heya.git
cd heya
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/python -m pytest
Point it at a model
Run the setup wizard. It walks you through a local (Ollama) or cloud model and writes the config for you:
heya init
A pasted cloud key is stored in a locked credentials file, never in the config.
On the local path the wizard offers to download a model for you. If you would
rather configure by hand, copy config.example.toml to
~/.config/heya/config.toml and edit it. See
docs/guide/getting-started.md.
Run it
heya "summarize what changed in the last 3 commits"
Triage a bug end to end:
heya "triage this: variation coupons apply to the parent price at checkout on WP 6.5 / WC 8.7"
Use a skill you already have:
heya "use my support-reply skill to draft a response to this ticket: ..."
Docs
- Getting started
- Configuration reference
- The diagnostic workflow
- Hosting your Claude skills, plugins, and tools
- Tools and safety
- Connect your own MCP servers
License
MIT. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heya_agent-0.0.2.tar.gz.
File metadata
- Download URL: heya_agent-0.0.2.tar.gz
- Upload date:
- Size: 241.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3d1b3985c9d64a197f5c4206af941067b6b66ccc22979653177ebe3693f54f1
|
|
| MD5 |
0da5560560e66a83291d5eb869075022
|
|
| BLAKE2b-256 |
1e6e9cce7011f15699bbc3d1e988cf137fa1180972680aaa00c71777d88cb259
|
Provenance
The following attestation bundles were made for heya_agent-0.0.2.tar.gz:
Publisher:
release.yml on shameemreza/heya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
heya_agent-0.0.2.tar.gz -
Subject digest:
e3d1b3985c9d64a197f5c4206af941067b6b66ccc22979653177ebe3693f54f1 - Sigstore transparency entry: 2011055374
- Sigstore integration time:
-
Permalink:
shameemreza/heya@c59ed82a7baab10faaf761d6b6a2ff82563c349e -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/shameemreza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c59ed82a7baab10faaf761d6b6a2ff82563c349e -
Trigger Event:
push
-
Statement type:
File details
Details for the file heya_agent-0.0.2-py3-none-any.whl.
File metadata
- Download URL: heya_agent-0.0.2-py3-none-any.whl
- Upload date:
- Size: 177.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f2f4d9cf552ed9c46b6a0b06c0dfd2bb64877120ae3c8c9fcec812562809c81
|
|
| MD5 |
60dc45352ca6e0b5cc8acb1bfe953449
|
|
| BLAKE2b-256 |
74b3158ad3ec13d2d6bed3808d133552861bd7520b0c747c131beecf36deffc3
|
Provenance
The following attestation bundles were made for heya_agent-0.0.2-py3-none-any.whl:
Publisher:
release.yml on shameemreza/heya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
heya_agent-0.0.2-py3-none-any.whl -
Subject digest:
8f2f4d9cf552ed9c46b6a0b06c0dfd2bb64877120ae3c8c9fcec812562809c81 - Sigstore transparency entry: 2011055568
- Sigstore integration time:
-
Permalink:
shameemreza/heya@c59ed82a7baab10faaf761d6b6a2ff82563c349e -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/shameemreza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c59ed82a7baab10faaf761d6b6a2ff82563c349e -
Trigger Event:
push
-
Statement type: