@holt-os/holt 0.4.0 → 0.5.0

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 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: early but usable, and it remembers now.** `holt init`, `holt chat`, and persistent memory work today. A "brain" is an agent CLI (Claude Code, Codex, or Gemini). Holt can install a missing one for you and hand off to its sign-in, you can switch brains mid-conversation without losing context, and every session adds to a private memory in that folder that future sessions recall from. Skills and the knowledge graph view are the next phases.
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
- /setting configure brains and your launch command
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>`. Raw API providers are planned for a later phase.
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 memory inspect memory: holt memory [search <query> | clear]
99
- holt setting configure brains and launch command
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** (command dispatch, brain router, transcript, and a plugin dispatcher coming with skills). Brains and, soon, skills and channels are adapters. See [`ARCHITECTURE.md`](./ARCHITECTURE.md).
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**: raw provider brains and an HTML or Markdown output toggle
120
- 3. **Skills**: install, search, and publish in the agentskills.io format
121
- 4. **Knowledge graph**: a view where you can see and navigate your own memory
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, one-command setup
163
+ 6. **Channels and polish**: Telegram, docs site, skill registry publishing
124
164
 
125
165
  ## Contributing
126
166