A single, local-first, model-agnostic, tool-using AI agent.
Project description
Heya
A local-first, model-agnostic terminal AI agent for WordPress and WooCommerce support engineers and developers.
Heya reads a request, decides what to do, calls tools, and loops until the task is done. The model is a configuration choice: it runs against a small local model through Ollama, a frontier cloud model through OpenRouter, OpenAI, or Anthropic, or anything that speaks the OpenAI chat API. Your prompts and your data stay on your machine, and it is built in plain Python with no agent framework, so you can read exactly what every tool 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. 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. And it hosts the Claude Code ecosystem, so your existing Claude skills, plugins, hooks, commands, and sub-agents work in Heya with no re-install.
What it can do
- Diagnose a WordPress or WooCommerce bug end to end. 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, evidence, and a repro link. Every stage is evidence-gated: no evidence, no verdict. It can rank a backlog into a pick-list too.
- Edit, plan, and undo. Surgical
edit_fileandmulti_editchange files without rewriting them. Plan mode (/plan) researches and proposes a plan without touching anything. Git-free checkpoints let you/undothe last turn's changes or/rewindto an earlier point, never touching your git. - Act on a live WordPress and WooCommerce site.
heya wp connectlinks a dev or staging site and acts on it through the official Abilities API (query orders, update status, manage products) under the site's own permission checks, writes behind the approval prompt. - Web and domain diagnostics. Look up DNS records, a domain's registrar and host (RDAP), whether a domain looks available, and what stack a site runs (WordPress, WooCommerce, server, CDN) from its headers.
- Background agents. Launch sub-agents that run while you keep working, each with an exclusive folder lease so concurrent agents never collide.
- Host your Claude ecosystem. Your
~/.claudeskills and plugins become tools, lifecycle hooks run (off by default), and Claude sub-agent and command definitions become Heya roles and commands. - Git, done your way. Inspect a repo with
git_status/git_log/git_diffand commit with a tool that strips any AI-attribution footer in code. Heya commits only when you ask and never auto-commits. - Connect MCP servers over stdio or HTTP, with OAuth, sampling, elicitation, and logging.
- Script it.
heya --json "task"prints one JSON object (result, tokens, cost, tools) and nothing else, so you can pipe a backlog through it in CI. - Stay cheap and resilient. A dollar cost in
/cost, an optional cheaper model for forgiving work, a fallback model that takes over if the primary errors, a per-task token budget, and context compaction so long sessions keep working on small-window local models. Switch models mid-session with/model. - Remember, review, and update. Facts persist across sessions in plain
markdown you can edit; a deterministic code-review pipeline reports real issues
instead of inventing them;
heya updateupgrades in place. - Files, shell, web, and a real browser, all behind an allow-list and an approval gate: reads run on their own, writes and commands ask first.
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. Plain pip install heya-agent works too. Then run
heya init to set up a model.
On macOS or Linux you can use Homebrew instead:
brew tap shameemreza/heya https://github.com/shameemreza/heya
brew install heya
Newer Homebrew (5.x and up) asks you to trust a third-party tap once. If you see
an "untrusted tap" error, run brew trust shameemreza/heya and then
brew install heya again. It is a one-time step; brew upgrade heya needs it
only that first time.
The browser tools are optional (they pull in Playwright and a Chromium binary), as is the MCP client:
pipx install "heya-agent[browser]" # then: python -m playwright install chromium
pipx install "heya-agent[mcp]" # to connect MCP servers
Heya runs fine without them; the extras only add the tools they name.
From source
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
Quickstart
heya init # pick a model, once
heya "summarize what changed in the last 3 commits"
A few things it is good at:
# 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"
# Plan first, change nothing until you approve
heya --plan "add a settings page to my plugin"
# Act on a connected staging store
heya wp connect
heya "list the last 10 failed orders on my staging store"
# Machine-readable output for scripts and CI
heya --json "triage this ticket: ..." | jq .result
Docs
- Getting started
- Commands and usage
- Configuration reference
- The diagnostic workflow
- Connect an MCP server
- Host your Claude skills, plugins, and tools
- WordPress development guidance
- Background agents
- Connect a WordPress site
- Tools and safety
Contributing
See CONTRIBUTING.md. The changelog records what changed between releases.
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.4.tar.gz.
File metadata
- Download URL: heya_agent-0.0.4.tar.gz
- Upload date:
- Size: 287.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b7bbfbd6c8d179631bc872c3c0f9a7f8daa9555797380664b321f28c4a7ad7c
|
|
| MD5 |
7503c9ef503fc101f43375849be1605b
|
|
| BLAKE2b-256 |
44e5ed2aa45c5bc8f1feb60d0473d4b8182f2ab171a561a5bc02ff4f6349a9a4
|
Provenance
The following attestation bundles were made for heya_agent-0.0.4.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.4.tar.gz -
Subject digest:
5b7bbfbd6c8d179631bc872c3c0f9a7f8daa9555797380664b321f28c4a7ad7c - Sigstore transparency entry: 2079454394
- Sigstore integration time:
-
Permalink:
shameemreza/heya@5f71f0e8a7a659978f9a58f56eea4eda6f805722 -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/shameemreza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5f71f0e8a7a659978f9a58f56eea4eda6f805722 -
Trigger Event:
push
-
Statement type:
File details
Details for the file heya_agent-0.0.4-py3-none-any.whl.
File metadata
- Download URL: heya_agent-0.0.4-py3-none-any.whl
- Upload date:
- Size: 202.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27142385909e6c292583e168bf5fce71739e3b0be831001ab090125b3d1f4327
|
|
| MD5 |
a33b1197f1130ea82e5cfb48b58b37b7
|
|
| BLAKE2b-256 |
adae9efbf3cfc5582b772379b7c074671142336459b511590065cf1ed0fbea88
|
Provenance
The following attestation bundles were made for heya_agent-0.0.4-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.4-py3-none-any.whl -
Subject digest:
27142385909e6c292583e168bf5fce71739e3b0be831001ab090125b3d1f4327 - Sigstore transparency entry: 2079454643
- Sigstore integration time:
-
Permalink:
shameemreza/heya@5f71f0e8a7a659978f9a58f56eea4eda6f805722 -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/shameemreza
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5f71f0e8a7a659978f9a58f56eea4eda6f805722 -
Trigger Event:
push
-
Statement type: