@holt-os/holt 0.14.2 → 0.14.3
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/README.md +51 -13
- package/dist/cli.js +532 -194
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,21 +1,33 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/holt-os/holt/main/docs/header.png" alt="Holt" width="100%">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/@holt-os/holt"><img src="https://img.shields.io/npm/v/@holt-os/holt?logo=npm&color=cb3837&label=npm" alt="npm version"></a>
|
|
7
|
+
<a href="https://github.com/holt-os/homebrew-tap"><img src="https://img.shields.io/badge/brew-holt--os%2Ftap%2Fholt-f5a623?logo=homebrew&logoColor=white" alt="Homebrew tap"></a>
|
|
8
|
+
<img src="https://img.shields.io/node/v/@holt-os/holt?logo=node.js&logoColor=white&color=3c873a" alt="Node version">
|
|
9
|
+
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-ready-4dd0e1?logo=modelcontextprotocol&logoColor=white" alt="MCP ready"></a>
|
|
10
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT license"></a>
|
|
11
|
+
</p>
|
|
4
12
|
|
|
5
|
-
|
|
13
|
+
***
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
**Holt is an open-source personal agent OS: any LLM as its brain, private memory it can see and walk, running entirely on your own machine.** Clone it, pick your skills, choose your brain. Your knowledge stays local and compounds over time.
|
|
8
16
|
|
|
9
|
-
>
|
|
10
|
-
>
|
|
11
|
-
> - Bare `holt` launches the real interactive brain (Claude Code, Codex, or Gemini) branded as Holt, setting the folder up the first time. `holt chat` stays as a lightweight REPL for direct API brains, with mid-conversation brain switching that keeps context.
|
|
12
|
-
> - Per-folder memory with semantic recall and distilled facts, ambient memory for Claude Code (`holt hook`), and opt-in memory shared across folders (`holt memory global`).
|
|
13
|
-
> - A self-maintaining knowledge wiki (`holt wiki`) and an interactive knowledge graph (`holt graph`) that can also ingest your code and docs into communities.
|
|
14
|
-
> - Run a task once, on a schedule, or as a named routine (`holt run` / `schedule` / `routine`), and reach it from your phone over Telegram.
|
|
15
|
-
> - Draft in your own voice with anti-AI checks (`holt write`), and size your setup with `holt doctor`.
|
|
16
|
-
> - Ten built-in skills plus a community registry (`holt skill search`), and an MCP server so Claude Code, Cursor, or Codex can read this folder's memory.
|
|
17
|
+
> A *holt* is a small wood: a sheltered place where things are kept and grow. That is the idea. A private home for your knowledge that compounds over time.
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
### Highlights
|
|
20
|
+
|
|
21
|
+
- **Any brain, one assistant.** Bare `holt` launches a real interactive brain (Claude Code, Codex, or Gemini) branded as Holt, or you connect a direct API brain with your own key. Switch mid-conversation and keep the full context.
|
|
22
|
+
- **Private memory you can see.** Per-folder semantic recall and distilled facts, an interactive knowledge graph (`holt graph`), and a self-maintaining wiki (`holt wiki`) over everything you tell it. Nothing leaves your machine.
|
|
23
|
+
- **Ambient by default.** `holt hook` wires memory into Claude Code so it recalls and remembers with no manual step, and an MCP server exposes the same memory to Cursor and Codex.
|
|
24
|
+
- **Runs your work.** Run a task once, on a schedule, or as a named routine, and reach it from your phone over Telegram.
|
|
25
|
+
- **Extensible, zero-infra.** Ten built-in skills plus a git-based community registry (`holt skill search`) in the portable `SKILL.md` format.
|
|
26
|
+
- **Writes in your voice.** `holt write` drafts in a style Holt learns from you, with built-in anti-AI checks.
|
|
27
|
+
|
|
28
|
+
> **Status:** shipping and usable today. Every capability above works now.
|
|
29
|
+
|
|
30
|
+
***
|
|
19
31
|
|
|
20
32
|
## Install
|
|
21
33
|
|
|
@@ -117,6 +129,8 @@ Holt runs the brain in the folder you launched it from, so by default the brain
|
|
|
117
129
|
|
|
118
130
|
Grants are **in-memory and session-scoped**: nothing is written to disk, and they reset the next time you run `holt chat`. Access is **read-oriented** and only works with a **Claude Code** brain: Holt passes `--add-dir=<dir>` for each granted folder plus `--allowedTools=Read,Glob,Grep` so Claude Code can read (but not write) those files without an interactive permission prompt. With a Codex/Gemini or API brain, external file access is unavailable and Holt says so instead of adding flags. (If you need to tune the flags, they live in one place: `claudeAccessArgs` in `src/access.ts`.)
|
|
119
131
|
|
|
132
|
+
***
|
|
133
|
+
|
|
120
134
|
## Memory
|
|
121
135
|
|
|
122
136
|
Every exchange is saved to `<folder>/.holt/memory/turns.jsonl`, private and local. On each message, Holt recalls the most relevant moments from your *past* sessions in that folder and hands them to the brain, so it remembers what you told it last week.
|
|
@@ -247,6 +261,8 @@ holt wiki setup # recommend a local model for this machine's RAM
|
|
|
247
261
|
|
|
248
262
|
Wiki pages also participate in recall: each page is embedded and indexed like a high-value fact, so `holt memory search` and chat recall can surface synthesized knowledge, not just raw turns.
|
|
249
263
|
|
|
264
|
+
***
|
|
265
|
+
|
|
250
266
|
## Skills
|
|
251
267
|
|
|
252
268
|
A skill is a folder with a `SKILL.md`: YAML frontmatter (`name`, `description`) plus Markdown instructions. Same convention as agentskills.io and Claude Code, so skills are portable both ways. Skills are prompt text only; Holt never executes their contents.
|
|
@@ -267,6 +283,22 @@ A source may carry a `#<subdir>` suffix (split on the first `#`) that points at
|
|
|
267
283
|
|
|
268
284
|
In chat, run one with `/skill <name> [your input]`. Available skills are also listed to the brain each turn, so it knows what it can be asked to follow.
|
|
269
285
|
|
|
286
|
+
### Skills as native commands
|
|
287
|
+
|
|
288
|
+
When you `holt launch` an interactive brain, every enabled skill is also compiled into that brain's own custom-command format, so it shows up as a real slash command inside the session (in addition to Holt's own `/skill <name>`). This happens automatically for the built-ins too, and re-syncs on `holt skill add` and `holt skill remove`. It is idempotent and stays quiet on repeat launches when nothing changed.
|
|
289
|
+
|
|
290
|
+
Fidelity depends on the brain:
|
|
291
|
+
|
|
292
|
+
- **Claude Code (full power):** each skill folder is copied verbatim into the project's `.claude/skills/<name>/`, so multi-file skills, tool restrictions, and frontmatter are preserved one to one.
|
|
293
|
+
- **Gemini CLI (best effort):** a `.gemini/commands/<name>.toml` custom command is generated from the skill's description and instructions, with your input passed through Gemini's `{{args}}`. Prompt only.
|
|
294
|
+
- **Codex (best effort):** a markdown custom prompt is written to Codex's global prompts dir (`~/.codex/prompts/holt-<name>.md`, prefixed because Codex prompts are global rather than per project), with your input passed through Codex's `$ARGUMENTS`. Prompt only.
|
|
295
|
+
|
|
296
|
+
It never clobbers a command or skill you authored: if a target already exists and Holt did not write it, that one is skipped with a one-line note. Holt tracks everything it generates in `./.holt/skill-commands.json`, so `holt skill remove` cleans up only Holt's own compiled commands and never touches yours. A skill that has no instructions to express (for the prompt-only brains) is skipped rather than emitted as a broken command.
|
|
297
|
+
|
|
298
|
+
### holt-jobsearch
|
|
299
|
+
|
|
300
|
+
A full skill suite built on Holt that runs an entire job search: build your profile, score a role on fit, tailor your resume, write the cover letter, prep for interviews, read your inbox for replies, draft follow-ups, and track the pipeline. The core runs with zero API keys; search, inbox, and follow-up are opt-in connectors. It drafts everything and leaves you the submit button. Find it at [holt-os/holt-jobsearch](https://github.com/holt-os/holt-jobsearch), or `holt skill search job` to install the pieces from the registry.
|
|
301
|
+
|
|
270
302
|
### Built-in skills
|
|
271
303
|
|
|
272
304
|
Holt ships with a small, curated set of general-purpose skills, available in every folder with no setup. They are read-only (`holt skill remove` will not delete them); to change one, create a workspace or global skill with the same name and it takes over.
|
|
@@ -372,6 +404,8 @@ To uninstall, run `holt hook remove` (add `--project` if you installed with `--p
|
|
|
372
404
|
|
|
373
405
|
Replies print as markdown. `/output html` (or `markdown`) switches the save format and persists it. `/save [name]` writes the last reply to the current folder: `.md`, or a small self-contained dark-theme `.html` page.
|
|
374
406
|
|
|
407
|
+
***
|
|
408
|
+
|
|
375
409
|
## Run tasks, schedule them, reach them from your phone
|
|
376
410
|
|
|
377
411
|
Beyond interactive chat, Holt can run a task once, on a timer, or from Telegram. The selected brain does the task; your memory is recalled into it automatically.
|
|
@@ -506,6 +540,8 @@ By default a second pass checks the draft against the rubric and fixes any tells
|
|
|
506
540
|
|
|
507
541
|
With no profile yet, `holt write` still works using a plain, natural voice.
|
|
508
542
|
|
|
543
|
+
***
|
|
544
|
+
|
|
509
545
|
## Commands
|
|
510
546
|
|
|
511
547
|
```
|
|
@@ -561,6 +597,8 @@ Built in always-shippable phases toward a full-vision v1:
|
|
|
561
597
|
|
|
562
598
|
Holt is built to be extended without touching the core. See [`CONTRIBUTING.md`](./CONTRIBUTING.md).
|
|
563
599
|
|
|
600
|
+
***
|
|
601
|
+
|
|
564
602
|
## License
|
|
565
603
|
|
|
566
604
|
[MIT](./LICENSE) © Debashis Nayak
|