heya-agent 0.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- heya_agent-0.0.1/LICENSE +21 -0
- heya_agent-0.0.1/PKG-INFO +173 -0
- heya_agent-0.0.1/README.md +140 -0
- heya_agent-0.0.1/heya/__init__.py +3 -0
- heya_agent-0.0.1/heya/agent.py +837 -0
- heya_agent-0.0.1/heya/agent_defs.py +63 -0
- heya_agent-0.0.1/heya/approval.py +127 -0
- heya_agent-0.0.1/heya/attachments.py +58 -0
- heya_agent-0.0.1/heya/config.py +762 -0
- heya_agent-0.0.1/heya/context.py +129 -0
- heya_agent-0.0.1/heya/credentials.py +35 -0
- heya_agent-0.0.1/heya/diagnosis.py +342 -0
- heya_agent-0.0.1/heya/guidance/banned-words.md +588 -0
- heya_agent-0.0.1/heya/guidance/code-review.md +19 -0
- heya_agent-0.0.1/heya/guidance/diagnosis.md +101 -0
- heya_agent-0.0.1/heya/guidance/environment.md +32 -0
- heya_agent-0.0.1/heya/guidance/explore.md +36 -0
- heya_agent-0.0.1/heya/guidance/minimal-code.md +68 -0
- heya_agent-0.0.1/heya/guidance/remediation.md +69 -0
- heya_agent-0.0.1/heya/guidance/reproduction.md +99 -0
- heya_agent-0.0.1/heya/guidance/support-reply.md +51 -0
- heya_agent-0.0.1/heya/guidance/triage.md +68 -0
- heya_agent-0.0.1/heya/guidance/writing-voice.md +38 -0
- heya_agent-0.0.1/heya/hooks.py +155 -0
- heya_agent-0.0.1/heya/init.py +122 -0
- heya_agent-0.0.1/heya/llm_client.py +172 -0
- heya_agent-0.0.1/heya/main.py +448 -0
- heya_agent-0.0.1/heya/mcp_callbacks.py +143 -0
- heya_agent-0.0.1/heya/mcp_oauth.py +195 -0
- heya_agent-0.0.1/heya/mcp_runtime.py +681 -0
- heya_agent-0.0.1/heya/memory.py +193 -0
- heya_agent-0.0.1/heya/plugins.py +114 -0
- heya_agent-0.0.1/heya/preflight.py +36 -0
- heya_agent-0.0.1/heya/process.py +110 -0
- heya_agent-0.0.1/heya/remediation.py +132 -0
- heya_agent-0.0.1/heya/reproduction.py +144 -0
- heya_agent-0.0.1/heya/review.py +289 -0
- heya_agent-0.0.1/heya/sessions.py +94 -0
- heya_agent-0.0.1/heya/skills.py +182 -0
- heya_agent-0.0.1/heya/subagents.py +127 -0
- heya_agent-0.0.1/heya/text.py +61 -0
- heya_agent-0.0.1/heya/tomlw.py +39 -0
- heya_agent-0.0.1/heya/tools.py +844 -0
- heya_agent-0.0.1/heya/tools_browser.py +148 -0
- heya_agent-0.0.1/heya/tools_files.py +158 -0
- heya_agent-0.0.1/heya/tools_guidance.py +87 -0
- heya_agent-0.0.1/heya/tools_mcp.py +33 -0
- heya_agent-0.0.1/heya/tools_web.py +209 -0
- heya_agent-0.0.1/heya/tools_wp.py +116 -0
- heya_agent-0.0.1/heya/triage.py +86 -0
- heya_agent-0.0.1/heya/ui.py +222 -0
- heya_agent-0.0.1/heya_agent.egg-info/PKG-INFO +173 -0
- heya_agent-0.0.1/heya_agent.egg-info/SOURCES.txt +99 -0
- heya_agent-0.0.1/heya_agent.egg-info/dependency_links.txt +1 -0
- heya_agent-0.0.1/heya_agent.egg-info/entry_points.txt +2 -0
- heya_agent-0.0.1/heya_agent.egg-info/requires.txt +15 -0
- heya_agent-0.0.1/heya_agent.egg-info/top_level.txt +1 -0
- heya_agent-0.0.1/pyproject.toml +48 -0
- heya_agent-0.0.1/setup.cfg +4 -0
- heya_agent-0.0.1/tests/test_agent.py +1521 -0
- heya_agent-0.0.1/tests/test_agent_defs.py +50 -0
- heya_agent-0.0.1/tests/test_approval.py +199 -0
- heya_agent-0.0.1/tests/test_attachments.py +49 -0
- heya_agent-0.0.1/tests/test_config.py +810 -0
- heya_agent-0.0.1/tests/test_context.py +103 -0
- heya_agent-0.0.1/tests/test_context_integration.py +95 -0
- heya_agent-0.0.1/tests/test_credentials.py +38 -0
- heya_agent-0.0.1/tests/test_diagnosis.py +176 -0
- heya_agent-0.0.1/tests/test_hooks.py +116 -0
- heya_agent-0.0.1/tests/test_init.py +131 -0
- heya_agent-0.0.1/tests/test_llm_client.py +272 -0
- heya_agent-0.0.1/tests/test_main.py +390 -0
- heya_agent-0.0.1/tests/test_mcp_callbacks.py +147 -0
- heya_agent-0.0.1/tests/test_mcp_integration.py +720 -0
- heya_agent-0.0.1/tests/test_mcp_oauth.py +149 -0
- heya_agent-0.0.1/tests/test_mcp_runtime.py +710 -0
- heya_agent-0.0.1/tests/test_memory.py +147 -0
- heya_agent-0.0.1/tests/test_memory_integration.py +52 -0
- heya_agent-0.0.1/tests/test_parallel_subagents_integration.py +113 -0
- heya_agent-0.0.1/tests/test_plugins.py +86 -0
- heya_agent-0.0.1/tests/test_preflight.py +45 -0
- heya_agent-0.0.1/tests/test_process.py +75 -0
- heya_agent-0.0.1/tests/test_remediation.py +125 -0
- heya_agent-0.0.1/tests/test_reproduction.py +104 -0
- heya_agent-0.0.1/tests/test_review.py +335 -0
- heya_agent-0.0.1/tests/test_review_integration.py +140 -0
- heya_agent-0.0.1/tests/test_sessions.py +57 -0
- heya_agent-0.0.1/tests/test_skills.py +148 -0
- heya_agent-0.0.1/tests/test_smoke.py +42 -0
- heya_agent-0.0.1/tests/test_subagent_integration.py +81 -0
- heya_agent-0.0.1/tests/test_subagents.py +162 -0
- heya_agent-0.0.1/tests/test_text.py +60 -0
- heya_agent-0.0.1/tests/test_tools.py +961 -0
- heya_agent-0.0.1/tests/test_tools_browser.py +113 -0
- heya_agent-0.0.1/tests/test_tools_files.py +236 -0
- heya_agent-0.0.1/tests/test_tools_guidance.py +108 -0
- heya_agent-0.0.1/tests/test_tools_mcp.py +31 -0
- heya_agent-0.0.1/tests/test_tools_web.py +153 -0
- heya_agent-0.0.1/tests/test_tools_wp.py +195 -0
- heya_agent-0.0.1/tests/test_triage.py +64 -0
- heya_agent-0.0.1/tests/test_ui.py +123 -0
heya_agent-0.0.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shameem Reza
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: heya-agent
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: A single, local-first, model-agnostic, tool-using AI agent.
|
|
5
|
+
Author: Shameem Reza
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/shameemreza/heya
|
|
8
|
+
Project-URL: Repository, https://github.com/shameemreza/heya
|
|
9
|
+
Keywords: ai,agent,cli,local-first,woocommerce,wordpress,support
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: httpx>=0.27
|
|
21
|
+
Requires-Dist: beautifulsoup4>=4.12
|
|
22
|
+
Requires-Dist: rich>=13
|
|
23
|
+
Requires-Dist: prompt_toolkit>=3
|
|
24
|
+
Provides-Extra: browser
|
|
25
|
+
Requires-Dist: playwright>=1.40; extra == "browser"
|
|
26
|
+
Provides-Extra: mcp
|
|
27
|
+
Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
28
|
+
Provides-Extra: test
|
|
29
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
30
|
+
Requires-Dist: mcp>=1.0; extra == "test"
|
|
31
|
+
Requires-Dist: trustme>=1.0; extra == "test"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# Heya
|
|
35
|
+
|
|
36
|
+
Heya is a single, local-first AI agent that runs in your terminal. One model,
|
|
37
|
+
one agent, a toolbox. It reads a request, decides what to do, calls tools, and
|
|
38
|
+
loops until the task is done.
|
|
39
|
+
|
|
40
|
+
The model is a configuration choice, not part of the design. The same loop runs
|
|
41
|
+
against a small local model through Ollama or a frontier cloud model through
|
|
42
|
+
OpenRouter, OpenAI, LM Studio, or anything that speaks the OpenAI chat API. Point
|
|
43
|
+
it at whatever you have. Your prompts and your data stay on your machine.
|
|
44
|
+
|
|
45
|
+
It is built in plain Python with no agent framework, so you can see exactly what
|
|
46
|
+
every part does.
|
|
47
|
+
|
|
48
|
+
## Why you might use it
|
|
49
|
+
|
|
50
|
+
Most agents are general. Heya is general too, but it carries a real specialty: a
|
|
51
|
+
WordPress and WooCommerce diagnostic assistant that takes a bug from a ticket to
|
|
52
|
+
a proven answer. And because it is model-agnostic and local-first, you run all of
|
|
53
|
+
that on your own models, with no vendor lock-in and nothing leaving your machine.
|
|
54
|
+
|
|
55
|
+
It also hosts the Claude Code ecosystem. Your existing Claude skills, plugins,
|
|
56
|
+
hooks, commands, and sub-agents work in Heya with no re-install, so you bring
|
|
57
|
+
what you already have.
|
|
58
|
+
|
|
59
|
+
## What it can do
|
|
60
|
+
|
|
61
|
+
- **Diagnostic assistant.** Give Heya a bug report, a ticket, or a log. It
|
|
62
|
+
reproduces the issue on a disposable WordPress Playground (or a dev site),
|
|
63
|
+
finds the root cause, proposes and verifies a fix, and hands you a paste-ready
|
|
64
|
+
triage comment with a verdict, impact, suggested priority, evidence, and a
|
|
65
|
+
one-click repro link. Every stage is evidence-gated: no evidence, no verdict.
|
|
66
|
+
It can also rank a backlog into a pick-list so you know what to work on.
|
|
67
|
+
- **Hosts your Claude ecosystem.** Discovers your `~/.claude` skills and plugins
|
|
68
|
+
and makes them available through a `Skill` tool, runs lifecycle hooks (off by
|
|
69
|
+
default), and turns Claude sub-agent and command definitions into Heya roles
|
|
70
|
+
and commands.
|
|
71
|
+
- **Sub-agents.** Delegate a self-contained task to a fresh, context-isolated
|
|
72
|
+
child agent, or fan several read-only children out in parallel and synthesize
|
|
73
|
+
their reports.
|
|
74
|
+
- **MCP client.** Connect Model Context Protocol servers over stdio or HTTP, with
|
|
75
|
+
OAuth, sampling, elicitation, and logging.
|
|
76
|
+
- **Memory.** Heya remembers facts across sessions in plain markdown files you
|
|
77
|
+
can read and edit.
|
|
78
|
+
- **Code review.** A deterministic gather, fan-out, adversarially-verify,
|
|
79
|
+
synthesize pipeline that reports real issues and says "nothing blocks" rather
|
|
80
|
+
than inventing findings.
|
|
81
|
+
- **Cost and context controls.** An optional cheaper model for forgiving work,
|
|
82
|
+
a per-task token budget, and context compaction so long sessions keep working
|
|
83
|
+
on small-window local models.
|
|
84
|
+
- **Files, shell, web, and a real browser.** All writes, shell commands, and
|
|
85
|
+
browser clicks ask before they run. Reads run on their own. Everything is
|
|
86
|
+
confined to an allow-list of folders.
|
|
87
|
+
|
|
88
|
+
## Install
|
|
89
|
+
|
|
90
|
+
You need Python 3.11 or newer. The package is `heya-agent`; the command is
|
|
91
|
+
`heya`.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pipx install heya-agent
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
[pipx](https://pipx.pypa.io) installs it into its own isolated environment and
|
|
98
|
+
puts `heya` on your PATH. If you do not have pipx, `pip install heya-agent`
|
|
99
|
+
works too. Then run `heya init` to set up a model.
|
|
100
|
+
|
|
101
|
+
The browser tools are optional, since they pull in Playwright and a Chromium
|
|
102
|
+
binary. Add them when you want them:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
pipx install "heya-agent[browser]"
|
|
106
|
+
python -m playwright install chromium
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Heya runs fine without them. The browser tools just return an install hint until
|
|
110
|
+
you do.
|
|
111
|
+
|
|
112
|
+
Connecting MCP servers (hosting other tools over the Model Context Protocol)
|
|
113
|
+
needs the `mcp` extra:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
pipx install "heya-agent[mcp]"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### From source (for contributors)
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
git clone git@github.com:shameemreza/heya.git
|
|
123
|
+
cd heya
|
|
124
|
+
python3 -m venv .venv
|
|
125
|
+
.venv/bin/pip install -e ".[test]"
|
|
126
|
+
.venv/bin/python -m pytest
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Point it at a model
|
|
130
|
+
|
|
131
|
+
Run the setup wizard. It walks you through a local (Ollama) or cloud model and
|
|
132
|
+
writes the config for you:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
heya init
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
A pasted cloud key is stored in a locked credentials file, never in the config.
|
|
139
|
+
On the local path the wizard offers to download a model for you. If you would
|
|
140
|
+
rather configure by hand, copy `config.example.toml` to
|
|
141
|
+
`~/.config/heya/config.toml` and edit it. See
|
|
142
|
+
[docs/guide/getting-started.md](docs/guide/getting-started.md).
|
|
143
|
+
|
|
144
|
+
## Run it
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
heya "summarize what changed in the last 3 commits"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Triage a bug end to end:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
heya "triage this: variation coupons apply to the parent price at checkout on WP 6.5 / WC 8.7"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Use a skill you already have:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
heya "use my support-reply skill to draft a response to this ticket: ..."
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Docs
|
|
163
|
+
|
|
164
|
+
- [Getting started](docs/guide/getting-started.md)
|
|
165
|
+
- [Configuration reference](docs/guide/configuration.md)
|
|
166
|
+
- [The diagnostic workflow](docs/guide/diagnostic-workflow.md)
|
|
167
|
+
- [Hosting your Claude skills, plugins, and tools](docs/guide/hosting-claude-ecosystem.md)
|
|
168
|
+
- [Tools and safety](docs/guide/tools-and-safety.md)
|
|
169
|
+
- [Connect your own MCP servers](docs/guide/mcp.md)
|
|
170
|
+
|
|
171
|
+
## License
|
|
172
|
+
|
|
173
|
+
MIT. See [LICENSE](LICENSE).
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Heya
|
|
2
|
+
|
|
3
|
+
Heya is a single, local-first AI agent that runs in your terminal. One model,
|
|
4
|
+
one agent, a toolbox. It reads a request, decides what to do, calls tools, and
|
|
5
|
+
loops until the task is done.
|
|
6
|
+
|
|
7
|
+
The model is a configuration choice, not part of the design. The same loop runs
|
|
8
|
+
against a small local model through Ollama or a frontier cloud model through
|
|
9
|
+
OpenRouter, OpenAI, LM Studio, or anything that speaks the OpenAI chat API. Point
|
|
10
|
+
it at whatever you have. Your prompts and your data stay on your machine.
|
|
11
|
+
|
|
12
|
+
It is built in plain Python with no agent framework, so you can see exactly what
|
|
13
|
+
every part does.
|
|
14
|
+
|
|
15
|
+
## Why you might use it
|
|
16
|
+
|
|
17
|
+
Most agents are general. Heya is general too, but it carries a real specialty: a
|
|
18
|
+
WordPress and WooCommerce diagnostic assistant that takes a bug from a ticket to
|
|
19
|
+
a proven answer. And because it is model-agnostic and local-first, you run all of
|
|
20
|
+
that on your own models, with no vendor lock-in and nothing leaving your machine.
|
|
21
|
+
|
|
22
|
+
It also hosts the Claude Code ecosystem. Your existing Claude skills, plugins,
|
|
23
|
+
hooks, commands, and sub-agents work in Heya with no re-install, so you bring
|
|
24
|
+
what you already have.
|
|
25
|
+
|
|
26
|
+
## What it can do
|
|
27
|
+
|
|
28
|
+
- **Diagnostic assistant.** Give Heya a bug report, a ticket, or a log. It
|
|
29
|
+
reproduces the issue on a disposable WordPress Playground (or a dev site),
|
|
30
|
+
finds the root cause, proposes and verifies a fix, and hands you a paste-ready
|
|
31
|
+
triage comment with a verdict, impact, suggested priority, evidence, and a
|
|
32
|
+
one-click repro link. Every stage is evidence-gated: no evidence, no verdict.
|
|
33
|
+
It can also rank a backlog into a pick-list so you know what to work on.
|
|
34
|
+
- **Hosts your Claude ecosystem.** Discovers your `~/.claude` skills and plugins
|
|
35
|
+
and makes them available through a `Skill` tool, runs lifecycle hooks (off by
|
|
36
|
+
default), and turns Claude sub-agent and command definitions into Heya roles
|
|
37
|
+
and commands.
|
|
38
|
+
- **Sub-agents.** Delegate a self-contained task to a fresh, context-isolated
|
|
39
|
+
child agent, or fan several read-only children out in parallel and synthesize
|
|
40
|
+
their reports.
|
|
41
|
+
- **MCP client.** Connect Model Context Protocol servers over stdio or HTTP, with
|
|
42
|
+
OAuth, sampling, elicitation, and logging.
|
|
43
|
+
- **Memory.** Heya remembers facts across sessions in plain markdown files you
|
|
44
|
+
can read and edit.
|
|
45
|
+
- **Code review.** A deterministic gather, fan-out, adversarially-verify,
|
|
46
|
+
synthesize pipeline that reports real issues and says "nothing blocks" rather
|
|
47
|
+
than inventing findings.
|
|
48
|
+
- **Cost and context controls.** An optional cheaper model for forgiving work,
|
|
49
|
+
a per-task token budget, and context compaction so long sessions keep working
|
|
50
|
+
on small-window local models.
|
|
51
|
+
- **Files, shell, web, and a real browser.** All writes, shell commands, and
|
|
52
|
+
browser clicks ask before they run. Reads run on their own. Everything is
|
|
53
|
+
confined to an allow-list of folders.
|
|
54
|
+
|
|
55
|
+
## Install
|
|
56
|
+
|
|
57
|
+
You need Python 3.11 or newer. The package is `heya-agent`; the command is
|
|
58
|
+
`heya`.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pipx install heya-agent
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
[pipx](https://pipx.pypa.io) installs it into its own isolated environment and
|
|
65
|
+
puts `heya` on your PATH. If you do not have pipx, `pip install heya-agent`
|
|
66
|
+
works too. Then run `heya init` to set up a model.
|
|
67
|
+
|
|
68
|
+
The browser tools are optional, since they pull in Playwright and a Chromium
|
|
69
|
+
binary. Add them when you want them:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pipx install "heya-agent[browser]"
|
|
73
|
+
python -m playwright install chromium
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Heya runs fine without them. The browser tools just return an install hint until
|
|
77
|
+
you do.
|
|
78
|
+
|
|
79
|
+
Connecting MCP servers (hosting other tools over the Model Context Protocol)
|
|
80
|
+
needs the `mcp` extra:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pipx install "heya-agent[mcp]"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### From source (for contributors)
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone git@github.com:shameemreza/heya.git
|
|
90
|
+
cd heya
|
|
91
|
+
python3 -m venv .venv
|
|
92
|
+
.venv/bin/pip install -e ".[test]"
|
|
93
|
+
.venv/bin/python -m pytest
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Point it at a model
|
|
97
|
+
|
|
98
|
+
Run the setup wizard. It walks you through a local (Ollama) or cloud model and
|
|
99
|
+
writes the config for you:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
heya init
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
A pasted cloud key is stored in a locked credentials file, never in the config.
|
|
106
|
+
On the local path the wizard offers to download a model for you. If you would
|
|
107
|
+
rather configure by hand, copy `config.example.toml` to
|
|
108
|
+
`~/.config/heya/config.toml` and edit it. See
|
|
109
|
+
[docs/guide/getting-started.md](docs/guide/getting-started.md).
|
|
110
|
+
|
|
111
|
+
## Run it
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
heya "summarize what changed in the last 3 commits"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Triage a bug end to end:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
heya "triage this: variation coupons apply to the parent price at checkout on WP 6.5 / WC 8.7"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Use a skill you already have:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
heya "use my support-reply skill to draft a response to this ticket: ..."
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Docs
|
|
130
|
+
|
|
131
|
+
- [Getting started](docs/guide/getting-started.md)
|
|
132
|
+
- [Configuration reference](docs/guide/configuration.md)
|
|
133
|
+
- [The diagnostic workflow](docs/guide/diagnostic-workflow.md)
|
|
134
|
+
- [Hosting your Claude skills, plugins, and tools](docs/guide/hosting-claude-ecosystem.md)
|
|
135
|
+
- [Tools and safety](docs/guide/tools-and-safety.md)
|
|
136
|
+
- [Connect your own MCP servers](docs/guide/mcp.md)
|
|
137
|
+
|
|
138
|
+
## License
|
|
139
|
+
|
|
140
|
+
MIT. See [LICENSE](LICENSE).
|