@kolisachint/hoocode-agent 0.2.0 → 0.2.2
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.
- package/CHANGELOG.md +5 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +1 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +24 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +20 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +4 -4
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -2
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +2 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +3 -3
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +1 -1
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/extensions/core/hoo-core.d.ts +16 -4
- package/dist/extensions/core/hoo-core.d.ts.map +1 -1
- package/dist/extensions/core/hoo-core.js +123 -24
- package/dist/extensions/core/hoo-core.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +4 -3
- package/dist/init.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +21 -1
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +1 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +12 -9
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/docs/compaction.md +9 -9
- package/docs/custom-provider.md +4 -4
- package/docs/development.md +6 -6
- package/docs/extensions.md +21 -21
- package/docs/index.md +9 -9
- package/docs/json.md +3 -3
- package/docs/keybindings.md +5 -5
- package/docs/models.md +6 -6
- package/docs/packages.md +37 -37
- package/docs/prompt-templates.md +4 -4
- package/docs/providers.md +12 -44
- package/docs/quickstart.md +28 -28
- package/docs/rpc.md +10 -10
- package/docs/sdk.md +13 -13
- package/docs/session-format.md +7 -7
- package/docs/sessions.md +11 -11
- package/docs/settings.md +14 -14
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +10 -10
- package/docs/terminal-setup.md +7 -7
- package/docs/termux.md +6 -6
- package/docs/themes.md +9 -9
- package/docs/tmux.md +3 -3
- package/docs/tui.md +3 -3
- package/docs/usage.md +47 -47
- package/docs/windows.md +2 -2
- package/examples/README.md +1 -1
- package/examples/extensions/README.md +5 -5
- package/examples/extensions/claude-rules.ts +1 -1
- package/examples/extensions/commands.ts +1 -1
- package/examples/extensions/custom-header.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/README.md +3 -3
- package/examples/extensions/pirate.ts +1 -1
- package/examples/extensions/preset.ts +4 -4
- package/examples/extensions/prompt-customizer.ts +1 -1
- package/examples/extensions/sandbox/index.ts +3 -3
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/README.md +13 -13
- package/examples/extensions/subagent/agents.ts +1 -1
- package/examples/extensions/subagent/index.ts +1 -1
- package/examples/extensions/tools.ts +1 -1
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/08-prompt-templates.ts +1 -1
- package/examples/sdk/README.md +2 -2
- package/package.json +1 -1
package/docs/sessions.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Sessions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode saves conversations as sessions so you can continue work, branch from earlier turns, and revisit previous paths.
|
|
4
4
|
|
|
5
5
|
## Session Storage
|
|
6
6
|
|
|
7
|
-
Sessions auto-save to `~/.
|
|
7
|
+
Sessions auto-save to `~/.hoocode/agent/sessions/`, organized by working directory. Each session is a JSONL file with a tree structure.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
hoocode -c # Continue most recent session
|
|
11
|
+
hoocode -r # Browse and select from past sessions
|
|
12
|
+
hoocode --no-session # Ephemeral mode; do not save
|
|
13
|
+
hoocode --session <path|id> # Use a specific session file or partial session ID
|
|
14
|
+
hoocode --fork <path|id> # Fork a session file or partial session ID into a new session
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
Use `/session` in interactive mode to see the current session file, session ID, message count, tokens, and cost.
|
|
@@ -35,7 +35,7 @@ For the JSONL file format and SessionManager API, see [Session Format](session-f
|
|
|
35
35
|
|
|
36
36
|
## Resuming and Deleting Sessions
|
|
37
37
|
|
|
38
|
-
`/resume` opens an interactive session picker for the current project. `
|
|
38
|
+
`/resume` opens an interactive session picker for the current project. `hoocode -r` opens the same picker at startup.
|
|
39
39
|
|
|
40
40
|
In the picker you can:
|
|
41
41
|
|
|
@@ -46,7 +46,7 @@ In the picker you can:
|
|
|
46
46
|
- rename with Ctrl+R
|
|
47
47
|
- delete with Ctrl+D, then confirm
|
|
48
48
|
|
|
49
|
-
When available,
|
|
49
|
+
When available, hoocode uses the `trash` CLI for deletion instead of permanently removing files.
|
|
50
50
|
|
|
51
51
|
## Naming Sessions
|
|
52
52
|
|
|
@@ -56,7 +56,7 @@ Use `/name <name>` to set a human-readable session name:
|
|
|
56
56
|
/name Refactor auth module
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Named sessions are easier to find in `/resume` and `
|
|
59
|
+
Named sessions are easier to find in `/resume` and `hoocode -r`.
|
|
60
60
|
|
|
61
61
|
## Branching with `/tree`
|
|
62
62
|
|
|
@@ -120,7 +120,7 @@ Use `/tree` when you want to keep alternatives together. Use `/fork` or `/clone`
|
|
|
120
120
|
|
|
121
121
|
## Branch Summaries
|
|
122
122
|
|
|
123
|
-
When `/tree` switches away from one branch to another,
|
|
123
|
+
When `/tree` switches away from one branch to another, hoocode can summarize the abandoned branch and attach that summary at the new position. This preserves important context from the path you left without replaying the whole branch.
|
|
124
124
|
|
|
125
125
|
When prompted, choose one of:
|
|
126
126
|
|
package/docs/settings.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Settings
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode uses JSON settings files with project settings overriding global settings.
|
|
4
4
|
|
|
5
5
|
| Location | Scope |
|
|
6
6
|
|----------|-------|
|
|
7
|
-
| `~/.
|
|
8
|
-
| `.
|
|
7
|
+
| `~/.hoocode/agent/settings.json` | Global (all projects) |
|
|
8
|
+
| `.hoocode/settings.json` | Project (current directory) |
|
|
9
9
|
|
|
10
10
|
Edit directly or use `/settings` for common options.
|
|
11
11
|
|
|
@@ -50,9 +50,9 @@ Edit directly or use `/settings` for common options.
|
|
|
50
50
|
|
|
51
51
|
### Telemetry and update checks
|
|
52
52
|
|
|
53
|
-
`enableInstallTelemetry` only controls the anonymous install/update ping to `https://
|
|
53
|
+
`enableInstallTelemetry` only controls the anonymous install/update ping to `https://hoocode.dev/api/report-install`. Opting out of telemetry does not disable update checks; HooCode can still fetch `https://hoocode.dev/api/latest-version` to look for the latest version.
|
|
54
54
|
|
|
55
|
-
Set `
|
|
55
|
+
Set `HOOCODE_SKIP_VERSION_CHECK=1` to disable the HooCode version update check. Use `--offline` or `HOOCODE_OFFLINE=1` to disable all startup network operations described here, including update checks, package update checks, and install/update telemetry.
|
|
56
56
|
|
|
57
57
|
### Warnings
|
|
58
58
|
|
|
@@ -164,10 +164,10 @@ Normally the package manager's global modules location is queried using `root -g
|
|
|
164
164
|
| `sessionDir` | string | - | Directory where session files are stored. Accepts absolute or relative paths, plus `~`. |
|
|
165
165
|
|
|
166
166
|
```json
|
|
167
|
-
{ "sessionDir": ".
|
|
167
|
+
{ "sessionDir": ".hoocode/sessions" }
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
When multiple sources specify a session directory, precedence is `--session-dir`, `
|
|
170
|
+
When multiple sources specify a session directory, precedence is `--session-dir`, `HOOCODE_CODING_AGENT_SESSION_DIR`, then `sessionDir` in settings.json.
|
|
171
171
|
|
|
172
172
|
### Model Cycling
|
|
173
173
|
|
|
@@ -191,7 +191,7 @@ When multiple sources specify a session directory, precedence is `--session-dir`
|
|
|
191
191
|
|
|
192
192
|
These settings define where to load extensions, skills, prompts, and themes from.
|
|
193
193
|
|
|
194
|
-
Paths in `~/.
|
|
194
|
+
Paths in `~/.hoocode/agent/settings.json` resolve relative to `~/.hoocode/agent`. Paths in `.hoocode/settings.json` resolve relative to `.hoocode`. Absolute paths and `~` are supported.
|
|
195
195
|
|
|
196
196
|
| Setting | Type | Default | Description |
|
|
197
197
|
|---------|------|---------|-------------|
|
|
@@ -210,7 +210,7 @@ String form loads all resources from a package:
|
|
|
210
210
|
|
|
211
211
|
```json
|
|
212
212
|
{
|
|
213
|
-
"packages": ["
|
|
213
|
+
"packages": ["hoocode-skills", "@org/my-extension"]
|
|
214
214
|
}
|
|
215
215
|
```
|
|
216
216
|
|
|
@@ -220,7 +220,7 @@ Object form filters which resources to load:
|
|
|
220
220
|
{
|
|
221
221
|
"packages": [
|
|
222
222
|
{
|
|
223
|
-
"source": "
|
|
223
|
+
"source": "hoocode-skills",
|
|
224
224
|
"skills": ["brave-search", "transcribe"],
|
|
225
225
|
"extensions": []
|
|
226
226
|
}
|
|
@@ -251,22 +251,22 @@ See [packages.md](packages.md) for package management details.
|
|
|
251
251
|
"warnings": {
|
|
252
252
|
"anthropicExtraUsage": true
|
|
253
253
|
},
|
|
254
|
-
"packages": ["
|
|
254
|
+
"packages": ["hoocode-skills"]
|
|
255
255
|
}
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
## Project Overrides
|
|
259
259
|
|
|
260
|
-
Project settings (`.
|
|
260
|
+
Project settings (`.hoocode/settings.json`) override global settings. Nested objects are merged:
|
|
261
261
|
|
|
262
262
|
```json
|
|
263
|
-
// ~/.
|
|
263
|
+
// ~/.hoocode/agent/settings.json (global)
|
|
264
264
|
{
|
|
265
265
|
"theme": "dark",
|
|
266
266
|
"compaction": { "enabled": true, "reserveTokens": 16384 }
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
// .
|
|
269
|
+
// .hoocode/settings.json (project)
|
|
270
270
|
{
|
|
271
271
|
"compaction": { "reserveTokens": 8192 }
|
|
272
272
|
}
|
package/docs/shell-aliases.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Shell Aliases
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode runs bash in non-interactive mode (`bash -c`), which doesn't expand aliases by default.
|
|
4
4
|
|
|
5
|
-
To enable your shell aliases, add to `~/.
|
|
5
|
+
To enable your shell aliases, add to `~/.hoocode/agent/settings.json`:
|
|
6
6
|
|
|
7
7
|
```json
|
|
8
8
|
{
|
package/docs/skills.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
>
|
|
1
|
+
> hoocode can create skills. Ask it to build one for your use case.
|
|
2
2
|
|
|
3
3
|
# Skills
|
|
4
4
|
|
|
5
5
|
Skills are self-contained capability packages that the agent loads on-demand. A skill provides specialized workflows, setup instructions, helper scripts, and reference documentation for specific tasks.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
HooCode implements the [Agent Skills standard](https://agentskills.io/specification), warning about violations but remaining lenient.
|
|
8
8
|
|
|
9
9
|
## Table of Contents
|
|
10
10
|
|
|
@@ -21,20 +21,20 @@ Pi implements the [Agent Skills standard](https://agentskills.io/specification),
|
|
|
21
21
|
|
|
22
22
|
> **Security:** Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
HooCode loads skills from:
|
|
25
25
|
|
|
26
26
|
- Global:
|
|
27
|
-
- `~/.
|
|
27
|
+
- `~/.hoocode/agent/skills/`
|
|
28
28
|
- `~/.agents/skills/`
|
|
29
29
|
- Project:
|
|
30
|
-
- `.
|
|
30
|
+
- `.hoocode/skills/`
|
|
31
31
|
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
32
32
|
- Packages: `skills/` directories or `pi.skills` entries in `package.json`
|
|
33
33
|
- Settings: `skills` array with files or directories
|
|
34
34
|
- CLI: `--skill <path>` (repeatable, additive even with `--no-skills`)
|
|
35
35
|
|
|
36
36
|
Discovery rules:
|
|
37
|
-
- In `~/.
|
|
37
|
+
- In `~/.hoocode/agent/skills/` and `.hoocode/skills/`, direct root `.md` files are discovered as individual skills
|
|
38
38
|
- In all skill locations, directories containing `SKILL.md` are discovered recursively
|
|
39
39
|
- In `~/.agents/skills/` and project `.agents/skills/`, root `.md` files are ignored
|
|
40
40
|
|
|
@@ -53,7 +53,7 @@ To use skills from Claude Code or OpenAI Codex, add their directories to setting
|
|
|
53
53
|
}
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
For project-level Claude Code skills, add to `.
|
|
56
|
+
For project-level Claude Code skills, add to `.hoocode/settings.json`:
|
|
57
57
|
|
|
58
58
|
```json
|
|
59
59
|
{
|
|
@@ -63,7 +63,7 @@ For project-level Claude Code skills, add to `.pi/settings.json`:
|
|
|
63
63
|
|
|
64
64
|
## How Skills Work
|
|
65
65
|
|
|
66
|
-
1. At startup,
|
|
66
|
+
1. At startup, hoocode scans skill locations and extracts names and descriptions
|
|
67
67
|
2. The system prompt includes available skills in XML format per the [specification](https://agentskills.io/integrate-skills)
|
|
68
68
|
3. When a task matches, the agent uses `read` to load the full SKILL.md (models don't always do this; use prompting or `/skill:name` to force it)
|
|
69
69
|
4. The agent follows the instructions, using relative paths to reference scripts and assets
|
|
@@ -175,7 +175,7 @@ description: Helps with PDFs.
|
|
|
175
175
|
|
|
176
176
|
## Validation
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
HooCode validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:
|
|
179
179
|
|
|
180
180
|
- Name doesn't match parent directory
|
|
181
181
|
- Name exceeds 64 characters or contains invalid characters
|
|
@@ -229,4 +229,4 @@ cd /path/to/brave-search && npm install
|
|
|
229
229
|
## Skill Repositories
|
|
230
230
|
|
|
231
231
|
- [Anthropic Skills](https://github.com/anthropics/skills) - Document processing (docx, pdf, pptx, xlsx), web development
|
|
232
|
-
- [
|
|
232
|
+
- [HooCode Skills](https://github.com/badlogic/pi-skills) - Web search, browser automation, Google APIs, transcription
|
package/docs/terminal-setup.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Terminal Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode uses the [Kitty keyboard protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/) for reliable modifier key detection. Most modern terminals support this protocol, but some require configuration.
|
|
4
4
|
|
|
5
5
|
## Kitty, iTerm2
|
|
6
6
|
|
|
@@ -20,11 +20,11 @@ Older Claude Code versions may have added this Ghostty mapping:
|
|
|
20
20
|
keybind = shift+enter=text:\n
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
That mapping sends a raw linefeed byte. Inside
|
|
23
|
+
That mapping sends a raw linefeed byte. Inside hoocode, that is indistinguishable from `Ctrl+J`, so tmux and hoocode no longer see a real `shift+enter` key event.
|
|
24
24
|
|
|
25
25
|
If Claude Code 2.x or newer is the only reason you added that mapping, you can remove it, unless you want to use Claude Code in tmux, where it still requires that Ghostty mapping.
|
|
26
26
|
|
|
27
|
-
If you want `Shift+Enter` to keep working in tmux via that remap, add `ctrl+j` to your
|
|
27
|
+
If you want `Shift+Enter` to keep working in tmux via that remap, add `ctrl+j` to your hoocode `newLine` keybinding in `~/.hoocode/agent/keybindings.json`:
|
|
28
28
|
|
|
29
29
|
```json
|
|
30
30
|
{
|
|
@@ -63,7 +63,7 @@ Add to `keybindings.json` to enable `Shift+Enter` for multi-line input:
|
|
|
63
63
|
|
|
64
64
|
## Windows Terminal
|
|
65
65
|
|
|
66
|
-
Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward the modified Enter keys
|
|
66
|
+
Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward the modified Enter keys hoocode uses:
|
|
67
67
|
|
|
68
68
|
```json
|
|
69
69
|
{
|
|
@@ -81,8 +81,8 @@ Add to `settings.json` (Ctrl+Shift+, or Settings → Open JSON file) to forward
|
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
- `Shift+Enter` inserts a new line.
|
|
84
|
-
- Windows Terminal binds `Alt+Enter` to fullscreen by default. That prevents
|
|
85
|
-
- Remapping `Alt+Enter` to `sendInput` forwards the real key chord to
|
|
84
|
+
- Windows Terminal binds `Alt+Enter` to fullscreen by default. That prevents hoocode from receiving `Alt+Enter` for follow-up queueing.
|
|
85
|
+
- Remapping `Alt+Enter` to `sendInput` forwards the real key chord to hoocode instead.
|
|
86
86
|
|
|
87
87
|
If you already have an `actions` array, add the objects to it. If the old fullscreen behavior persists, fully close and reopen Windows Terminal.
|
|
88
88
|
|
|
@@ -101,6 +101,6 @@ For the best experience, use a terminal that supports the Kitty keyboard protoco
|
|
|
101
101
|
|
|
102
102
|
The built-in terminal has limited escape sequence support. Shift+Enter cannot be distinguished from Enter in IntelliJ's terminal.
|
|
103
103
|
|
|
104
|
-
If you want the hardware cursor visible, set `
|
|
104
|
+
If you want the hardware cursor visible, set `HOOCODE_HARDWARE_CURSOR=1` before running hoocode (disabled by default for compatibility).
|
|
105
105
|
|
|
106
106
|
Consider using a dedicated terminal emulator for the best experience.
|
package/docs/termux.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Termux (Android) Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode runs on Android via [Termux](https://termux.dev/), a terminal emulator and Linux environment for Android.
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
@@ -16,14 +16,14 @@ pkg update && pkg upgrade
|
|
|
16
16
|
# Install dependencies
|
|
17
17
|
pkg install nodejs termux-api git
|
|
18
18
|
|
|
19
|
-
# Install
|
|
19
|
+
# Install hoocode
|
|
20
20
|
npm install -g @kolisachint/hoocode-agent
|
|
21
21
|
|
|
22
22
|
# Create config directory
|
|
23
|
-
mkdir -p ~/.
|
|
23
|
+
mkdir -p ~/.hoocode/agent
|
|
24
24
|
|
|
25
|
-
# Run
|
|
26
|
-
|
|
25
|
+
# Run hoocode
|
|
26
|
+
hoocode
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## Clipboard Support
|
|
@@ -34,7 +34,7 @@ Image clipboard is not supported on Termux (the `ctrl+v` image paste feature wil
|
|
|
34
34
|
|
|
35
35
|
## Example AGENTS.md for Termux
|
|
36
36
|
|
|
37
|
-
Create `~/.
|
|
37
|
+
Create `~/.hoocode/agent/AGENTS.md` to help the agent understand the Termux environment:
|
|
38
38
|
|
|
39
39
|
```markdown
|
|
40
40
|
# Agent Environment: Termux on Android
|
package/docs/themes.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
>
|
|
1
|
+
> hoocode can create themes. Ask it to build one for your setup.
|
|
2
2
|
|
|
3
3
|
# Themes
|
|
4
4
|
|
|
@@ -16,11 +16,11 @@ Themes are JSON files that define colors for the TUI.
|
|
|
16
16
|
|
|
17
17
|
## Locations
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
HooCode loads themes from:
|
|
20
20
|
|
|
21
21
|
- Built-in: `dark`, `light`
|
|
22
|
-
- Global: `~/.
|
|
23
|
-
- Project: `.
|
|
22
|
+
- Global: `~/.hoocode/agent/themes/*.json`
|
|
23
|
+
- Project: `.hoocode/themes/*.json`
|
|
24
24
|
- Packages: `themes/` directories or `pi.themes` entries in `package.json`
|
|
25
25
|
- Settings: `themes` array with files or directories
|
|
26
26
|
- CLI: `--theme <path>` (repeatable)
|
|
@@ -37,15 +37,15 @@ Select a theme via `/settings` or in `settings.json`:
|
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
On first run,
|
|
40
|
+
On first run, hoocode detects your terminal background and defaults to `dark` or `light`.
|
|
41
41
|
|
|
42
42
|
## Creating a Custom Theme
|
|
43
43
|
|
|
44
44
|
1. Create a theme file:
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
mkdir -p ~/.
|
|
48
|
-
vim ~/.
|
|
47
|
+
mkdir -p ~/.hoocode/agent/themes
|
|
48
|
+
vim ~/.hoocode/agent/themes/my-theme.json
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
2. Define the theme with all required colors (see [Color Tokens](#color-tokens)):
|
|
@@ -116,7 +116,7 @@ vim ~/.pi/agent/themes/my-theme.json
|
|
|
116
116
|
|
|
117
117
|
3. Select the theme via `/settings`.
|
|
118
118
|
|
|
119
|
-
**Hot reload:** When you edit the currently active custom theme file,
|
|
119
|
+
**Hot reload:** When you edit the currently active custom theme file, hoocode reloads it automatically for immediate visual feedback.
|
|
120
120
|
|
|
121
121
|
## Theme Format
|
|
122
122
|
|
|
@@ -268,7 +268,7 @@ Four formats are supported:
|
|
|
268
268
|
|
|
269
269
|
### Terminal Compatibility
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
HooCode uses 24-bit RGB colors. Most modern terminals support this (iTerm2, Kitty, WezTerm, Windows Terminal, VS Code). For older terminals with only 256-color support, hoocode falls back to the nearest approximation.
|
|
272
272
|
|
|
273
273
|
Check truecolor support:
|
|
274
274
|
|
package/docs/tmux.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# tmux Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode works inside tmux, but tmux strips modifier information from certain keys by default. Without configuration, `Shift+Enter` and `Ctrl+Enter` are usually indistinguishable from plain `Enter`.
|
|
4
4
|
|
|
5
5
|
## Recommended Configuration
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@ tmux kill-server
|
|
|
18
18
|
tmux
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
HooCode requests extended key reporting automatically when Kitty keyboard protocol is not available. With `extended-keys-format csi-u`, tmux forwards modified keys in CSI-u format, which is the most reliable configuration.
|
|
22
22
|
|
|
23
23
|
## Why `csi-u` Is Recommended
|
|
24
24
|
|
|
@@ -40,7 +40,7 @@ With `extended-keys-format csi-u`, the same keys are forwarded as:
|
|
|
40
40
|
- `Ctrl+D` → `\x1b[100;5u`
|
|
41
41
|
- `Ctrl+Enter` → `\x1b[13;5u`
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
HooCode supports both formats, but `csi-u` is the recommended tmux setup.
|
|
44
44
|
|
|
45
45
|
## What This Fixes
|
|
46
46
|
|
package/docs/tui.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
>
|
|
1
|
+
> hoocode can create TUI components. Ask it to build one for your use case.
|
|
2
2
|
|
|
3
3
|
# TUI Components
|
|
4
4
|
|
|
@@ -737,7 +737,7 @@ ctx.ui.setStatus("my-ext", undefined);
|
|
|
737
737
|
|
|
738
738
|
### Pattern 4b: Working Indicator Customization
|
|
739
739
|
|
|
740
|
-
Customize the inline working indicator shown while
|
|
740
|
+
Customize the inline working indicator shown while hoocode is streaming a response.
|
|
741
741
|
|
|
742
742
|
```typescript
|
|
743
743
|
// Static indicator
|
|
@@ -757,7 +757,7 @@ ctx.ui.setWorkingIndicator({
|
|
|
757
757
|
// Hide the indicator entirely
|
|
758
758
|
ctx.ui.setWorkingIndicator({ frames: [] });
|
|
759
759
|
|
|
760
|
-
// Restore
|
|
760
|
+
// Restore hoocode's default spinner
|
|
761
761
|
ctx.ui.setWorkingIndicator();
|
|
762
762
|
```
|
|
763
763
|
|
package/docs/usage.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Using
|
|
1
|
+
# Using HooCode
|
|
2
2
|
|
|
3
3
|
This page collects day-to-day usage details that do not fit on the quickstart page.
|
|
4
4
|
|
|
@@ -53,7 +53,7 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|
|
53
53
|
| `/reload` | Reload keybindings, extensions, skills, prompts, and context files |
|
|
54
54
|
| `/hotkeys` | Show all keyboard shortcuts |
|
|
55
55
|
| `/changelog` | Display version history |
|
|
56
|
-
| `/quit` | Quit
|
|
56
|
+
| `/quit` | Quit hoocode |
|
|
57
57
|
|
|
58
58
|
## Message Queue
|
|
59
59
|
|
|
@@ -64,20 +64,20 @@ You can submit messages while the agent is still working:
|
|
|
64
64
|
- **Escape** aborts and restores queued messages to the editor.
|
|
65
65
|
- **Alt+Up** retrieves queued messages back to the editor.
|
|
66
66
|
|
|
67
|
-
On Windows Terminal, Alt+Enter is fullscreen by default. Remap it as described in [Terminal setup](terminal-setup.md) if you want
|
|
67
|
+
On Windows Terminal, Alt+Enter is fullscreen by default. Remap it as described in [Terminal setup](terminal-setup.md) if you want hoocode to receive the shortcut.
|
|
68
68
|
|
|
69
69
|
Configure delivery in [Settings](settings.md) with `steeringMode` and `followUpMode`.
|
|
70
70
|
|
|
71
71
|
## Sessions
|
|
72
72
|
|
|
73
|
-
Sessions are saved automatically to `~/.
|
|
73
|
+
Sessions are saved automatically to `~/.hoocode/agent/sessions/`, organized by working directory.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
hoocode -c # Continue most recent session
|
|
77
|
+
hoocode -r # Browse and select a session
|
|
78
|
+
hoocode --no-session # Ephemeral mode; do not save
|
|
79
|
+
hoocode --session <path|id> # Use a specific session file or session ID
|
|
80
|
+
hoocode --fork <path|id> # Fork a session into a new session file
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Useful session commands:
|
|
@@ -92,9 +92,9 @@ See [Sessions](sessions.md) and [Compaction](compaction.md) for details.
|
|
|
92
92
|
|
|
93
93
|
## Context Files
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
HooCode loads `AGENTS.md` or `CLAUDE.md` at startup from:
|
|
96
96
|
|
|
97
|
-
- `~/.
|
|
97
|
+
- `~/.hoocode/agent/AGENTS.md` for global instructions
|
|
98
98
|
- parent directories, walking up from the current working directory
|
|
99
99
|
- the current directory
|
|
100
100
|
|
|
@@ -104,8 +104,8 @@ Use context files for project conventions, commands, safety rules, and preferenc
|
|
|
104
104
|
|
|
105
105
|
Replace the default system prompt with:
|
|
106
106
|
|
|
107
|
-
- `.
|
|
108
|
-
- `~/.
|
|
107
|
+
- `.hoocode/SYSTEM.md` for a project
|
|
108
|
+
- `~/.hoocode/agent/SYSTEM.md` globally
|
|
109
109
|
|
|
110
110
|
Append to the default prompt without replacing it with `APPEND_SYSTEM.md` in either location.
|
|
111
111
|
|
|
@@ -115,29 +115,29 @@ Use `/export [file]` to write a session to HTML.
|
|
|
115
115
|
|
|
116
116
|
Use `/share` to upload a private GitHub gist with a shareable HTML link.
|
|
117
117
|
|
|
118
|
-
If you use
|
|
118
|
+
If you use hoocode for open source work and want to publish sessions for model, prompt, tool, and evaluation research, see [`badlogic/pi-share-hf`](https://github.com/badlogic/pi-share-hf). It publishes sessions to Hugging Face datasets.
|
|
119
119
|
|
|
120
120
|
## CLI Reference
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
|
-
|
|
123
|
+
hoocode [options] [@files...] [messages...]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
### Package Commands
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
129
|
+
hoocode install <source> [-l] # Install package, -l for project-local
|
|
130
|
+
hoocode remove <source> [-l] # Remove package
|
|
131
|
+
hoocode uninstall <source> [-l] # Alias for remove
|
|
132
|
+
hoocode update [source|self|hoocode] # Update hoocode and packages; skips pinned packages
|
|
133
|
+
hoocode update --extensions # Update packages only
|
|
134
|
+
hoocode update --self # Update hoocode only
|
|
135
|
+
hoocode update --extension <src> # Update one package
|
|
136
|
+
hoocode list # List installed packages
|
|
137
|
+
hoocode config # Enable/disable package resources
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
See [
|
|
140
|
+
See [HooCode Packages](packages.md) for package sources and security notes.
|
|
141
141
|
|
|
142
142
|
### Modes
|
|
143
143
|
|
|
@@ -149,10 +149,10 @@ See [Pi Packages](packages.md) for package sources and security notes.
|
|
|
149
149
|
| `--mode rpc` | RPC mode over stdin/stdout; see [RPC mode](rpc.md) |
|
|
150
150
|
| `--export <in> [out]` | Export a session to HTML |
|
|
151
151
|
|
|
152
|
-
In print mode,
|
|
152
|
+
In print mode, hoocode also reads piped stdin and merges it into the initial prompt:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
|
-
cat README.md |
|
|
155
|
+
cat README.md | hoocode -p "Summarize this text"
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
### Model Options
|
|
@@ -204,7 +204,7 @@ Built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`.
|
|
|
204
204
|
Combine `--no-*` with explicit flags to load exactly what you need, ignoring settings. Example:
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
|
|
207
|
+
hoocode --no-extensions -e ./my-extension.ts
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
### Other Options
|
|
@@ -222,55 +222,55 @@ pi --no-extensions -e ./my-extension.ts
|
|
|
222
222
|
Prefix files with `@` to include them in the message:
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
225
|
+
hoocode @prompt.md "Answer this"
|
|
226
|
+
hoocode -p @screenshot.png "What's in this image?"
|
|
227
|
+
hoocode @code.ts @test.ts "Review these files"
|
|
228
228
|
```
|
|
229
229
|
|
|
230
230
|
### Examples
|
|
231
231
|
|
|
232
232
|
```bash
|
|
233
233
|
# Interactive with initial prompt
|
|
234
|
-
|
|
234
|
+
hoocode "List all .ts files in src/"
|
|
235
235
|
|
|
236
236
|
# Non-interactive
|
|
237
|
-
|
|
237
|
+
hoocode -p "Summarize this codebase"
|
|
238
238
|
|
|
239
239
|
# Non-interactive with piped stdin
|
|
240
|
-
cat README.md |
|
|
240
|
+
cat README.md | hoocode -p "Summarize this text"
|
|
241
241
|
|
|
242
242
|
# Different model
|
|
243
|
-
|
|
243
|
+
hoocode --provider openai --model gpt-4o "Help me refactor"
|
|
244
244
|
|
|
245
245
|
# Model with provider prefix
|
|
246
|
-
|
|
246
|
+
hoocode --model openai/gpt-4o "Help me refactor"
|
|
247
247
|
|
|
248
248
|
# Model with thinking level shorthand
|
|
249
|
-
|
|
249
|
+
hoocode --model sonnet:high "Solve this complex problem"
|
|
250
250
|
|
|
251
251
|
# Limit model cycling
|
|
252
|
-
|
|
252
|
+
hoocode --models "claude-*,gpt-4o"
|
|
253
253
|
|
|
254
254
|
# Read-only mode
|
|
255
|
-
|
|
255
|
+
hoocode --tools read,grep,find,ls -p "Review the code"
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
### Environment Variables
|
|
259
259
|
|
|
260
260
|
| Variable | Description |
|
|
261
261
|
|----------|-------------|
|
|
262
|
-
| `
|
|
263
|
-
| `
|
|
264
|
-
| `
|
|
265
|
-
| `
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
| `
|
|
262
|
+
| `HOOCODE_AGENT_DIR` | Override config directory; default is `~/.hoocode/agent` |
|
|
263
|
+
| `HOOCODE_AGENT_SESSION_DIR` | Override session storage directory; overridden by `--session-dir` |
|
|
264
|
+
| `HOOCODE_PACKAGE_DIR` | Override package directory, useful for Nix/Guix store paths |
|
|
265
|
+
| `HOOCODE_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry |
|
|
266
|
+
| `HOOCODE_SKIP_VERSION_CHECK` | Skip the hoocode version update check at startup |
|
|
267
|
+
| `HOOCODE_TELEMETRY` | Override install/update telemetry: `1`/`true`/`yes` or `0`/`false`/`no`. This does not disable update checks |
|
|
268
|
+
| `HOOCODE_CACHE_RETENTION` | Set to `long` for extended prompt cache where supported |
|
|
269
269
|
| `VISUAL`, `EDITOR` | External editor for Ctrl+G |
|
|
270
270
|
|
|
271
271
|
## Design Principles
|
|
272
272
|
|
|
273
|
-
|
|
273
|
+
HooCode keeps the core small and pushes workflow-specific behavior into extensions, skills, prompt templates, and packages.
|
|
274
274
|
|
|
275
275
|
It intentionally does not include built-in MCP, sub-agents, permission popups, plan mode, to-dos, or background bash. You can build or install those workflows as extensions or packages, or use external tools such as containers and tmux.
|
|
276
276
|
|
package/docs/windows.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Windows Setup
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
HooCode requires a bash shell on Windows. Checked locations (in order):
|
|
4
4
|
|
|
5
|
-
1. Custom path from `~/.
|
|
5
|
+
1. Custom path from `~/.hoocode/agent/settings.json`
|
|
6
6
|
2. Git Bash (`C:\Program Files\Git\bin\bash.exe`)
|
|
7
7
|
3. `bash.exe` on PATH (Cygwin, MSYS2, WSL)
|
|
8
8
|
|