@holt-os/holt 0.4.0 → 0.5.1
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 +50 -10
- package/dist/cli.js +1742 -118
- package/package.json +3 -3
- package/config.example.yml +0 -40
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Holt is an open-source, self-hosted personal agent OS. Clone it, pick your skill
|
|
|
6
6
|
|
|
7
7
|
> A *holt* is a small wood: a sheltered place where things are kept and grow. That's the idea. A private home for your knowledge that compounds over time.
|
|
8
8
|
|
|
9
|
-
> **Status:
|
|
9
|
+
> **Status: young but genuinely useful.** Working today: `holt init` and `holt chat`, brains as agent CLIs (Claude Code, Codex, Gemini) or direct API connections with your own key, mid-conversation brain switching that keeps context, persistent per-folder memory with semantic recall, skills in the portable SKILL.md format, and `holt graph`: your memory drawn as an interactive knowledge graph.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -47,8 +47,11 @@ Inside `holt chat`:
|
|
|
47
47
|
```
|
|
48
48
|
/brain list your brains and see which is active
|
|
49
49
|
/brain gemini switch brain. your conversation context is kept
|
|
50
|
+
/skill <name> run a skill on your input
|
|
50
51
|
/memory memory stats. /memory <query> previews what recall would surface
|
|
51
|
-
/
|
|
52
|
+
/output show or set the save format: markdown | html
|
|
53
|
+
/save [name] save the last reply to a file in this folder
|
|
54
|
+
/setting configure brains, API brains, and your launch command
|
|
52
55
|
/clear forget this session (saved memory stays)
|
|
53
56
|
/help show commands
|
|
54
57
|
/exit leave
|
|
@@ -88,15 +91,52 @@ A brain is an agent CLI installed and logged in on your machine. No API keys to
|
|
|
88
91
|
| Codex | `codex` | `npm i -g @openai/codex` |
|
|
89
92
|
| Gemini CLI | `gemini` | `npm i -g @google/gemini-cli` |
|
|
90
93
|
|
|
91
|
-
`holt init` runs these for you when you pick a brain that is missing. You can also sign in any time with `holt login <brain>`.
|
|
94
|
+
`holt init` runs these for you when you pick a brain that is missing. You can also sign in any time with `holt login <brain>`.
|
|
95
|
+
|
|
96
|
+
### Direct API brains
|
|
97
|
+
|
|
98
|
+
A brain can also be a direct provider connection: no CLI install, your own key. Run `holt setting` and pick `[c] connect API brain`, or say yes to the API-brain question in `holt init`. Choose a provider (anthropic, openai, gemini), a model (suggestions offered, type anything), and a short name. For the key, paste a raw key (stored in `~/.holt/credentials.json`, mode 600) or give the name of an env var that holds it. Resolution order: the brain's `keyEnv`, the credentials file, then the standard env var (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`). API brains stream and share memory exactly like CLI brains; switch with `/brain <name>`.
|
|
99
|
+
|
|
100
|
+
## See your memory: `holt graph`
|
|
101
|
+
|
|
102
|
+
`holt graph` turns this folder's memory into a picture you can walk. It writes one self-contained HTML file to `./.holt/graph.html` and opens it in your browser. No server, no CDN, no tracking: one file you can keep or share.
|
|
103
|
+
|
|
104
|
+
- Every turn is a node: yours glow amber, the assistant's cyan, and turns from the same session share a colored ring.
|
|
105
|
+
- Recurring ideas surface as concept nodes that tie related turns together.
|
|
106
|
+
- Turns that mean similar things (when local embeddings exist) get a strong link.
|
|
107
|
+
- Drag to pan, scroll to zoom, click a turn to read it in full, click a concept to light up its turns, and search to highlight matching memory live.
|
|
108
|
+
|
|
109
|
+
Options: `--out <path>` to write elsewhere, `--no-open` to skip the browser.
|
|
110
|
+
|
|
111
|
+
## Skills
|
|
112
|
+
|
|
113
|
+
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.
|
|
114
|
+
|
|
115
|
+
Holt looks in two places (workspace wins on a name clash): `./.holt/skills/` for this folder, `~/.holt/skills/` for every folder (`--global`).
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
holt skill list list installed skills
|
|
119
|
+
holt skill show <name> print a skill
|
|
120
|
+
holt skill create <name> [--global] scaffold a new skill
|
|
121
|
+
holt skill add <src> [--global] install from a git URL or local path
|
|
122
|
+
holt skill remove <name> delete a skill
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
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.
|
|
126
|
+
|
|
127
|
+
## Output format
|
|
128
|
+
|
|
129
|
+
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.
|
|
92
130
|
|
|
93
131
|
## Commands
|
|
94
132
|
|
|
95
133
|
```
|
|
96
134
|
holt init set up (trust, brains, sign-in, defaults) for this folder
|
|
97
135
|
holt chat start a session that remembers past ones
|
|
98
|
-
holt
|
|
99
|
-
holt
|
|
136
|
+
holt graph see your memory as an interactive knowledge graph
|
|
137
|
+
holt skill manage skills: list | show | create | add | remove
|
|
138
|
+
holt memory inspect memory: holt memory [search <query> | embed | clear]
|
|
139
|
+
holt setting configure brains, API brains, and launch command
|
|
100
140
|
holt login <brain> sign in to claude, codex, or gemini
|
|
101
141
|
holt version print version
|
|
102
142
|
holt help show help
|
|
@@ -108,7 +148,7 @@ holt help show help
|
|
|
108
148
|
|
|
109
149
|
## Architecture
|
|
110
150
|
|
|
111
|
-
Small strongly-typed **TypeScript core
|
|
151
|
+
Small strongly-typed **TypeScript core**, zero runtime dependencies: command dispatch, brain adapters (CLI spawn and direct API streaming), transcript ownership, memory with recall, skills, and the graph renderer. See [`ARCHITECTURE.md`](./ARCHITECTURE.md) and [`CONFIGURATION.md`](./CONFIGURATION.md).
|
|
112
152
|
|
|
113
153
|
## Roadmap
|
|
114
154
|
|
|
@@ -116,11 +156,11 @@ Built in always-shippable phases toward a full-vision v1:
|
|
|
116
156
|
|
|
117
157
|
0. **Skeleton and chat**: trust, init with install and sign-in, chat, brain switching with kept context *(shipped)*
|
|
118
158
|
1. **Memory**: per-folder store, semantic recall via local embeddings with keyword fallback, streaming replies *(shipped)*
|
|
119
|
-
2. **Any LLM directly**:
|
|
120
|
-
3. **Skills**:
|
|
121
|
-
4. **Knowledge graph**:
|
|
159
|
+
2. **Any LLM directly**: API brains with your own key, HTML or Markdown output *(shipped)*
|
|
160
|
+
3. **Skills**: portable SKILL.md skills, create/add/run *(shipped)*
|
|
161
|
+
4. **Knowledge graph**: see and navigate your own memory with `holt graph` *(shipped)*
|
|
122
162
|
5. **Orchestration**: a local model works, a cloud model reviews the risky steps
|
|
123
|
-
6. **Channels and polish**: Telegram, docs,
|
|
163
|
+
6. **Channels and polish**: Telegram, docs site, skill registry publishing
|
|
124
164
|
|
|
125
165
|
## Contributing
|
|
126
166
|
|