Skip to content

Commit 8dcc516

Browse files
BunsDevNova
andauthored
feat: Coven familiars as dynamic agents + familiars docs section (#2)
Co-authored-by: Nova <nova@opencoven.ai>
1 parent 06a241c commit 8dcc516

11 files changed

Lines changed: 586 additions & 50 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**Coven Code** is an open-source, multi-provider agentic coding TUI built in Rust. It is maintained by [OpenCoven](https://opencoven.ai) as a GPL-3.0 fork of [Claurst](https://github.com/Kuberwastaken/claurst) by Kuber Mehta.
44

5-
> **Attribution:** Coven Code is derived from Claurst v0.0.9 under the GNU General Public License v3.0. The full license is in [`LICENSE.md`](LICENSE.md) and upstream attribution is in [`ATTRIBUTION.md`](ATTRIBUTION.md).
5+
> **Attribution:** Coven Code is derived from Claurst v0.0.10 under the GNU General Public License v3.0. The full license is in [`LICENSE.md`](LICENSE.md) and upstream attribution is in [`ATTRIBUTION.md`](ATTRIBUTION.md).
66
77
---
88

@@ -16,7 +16,7 @@ Multi-provider terminal coding agent with a rich ratatui TUI: chat forking, memo
1616

1717
## Status
1818

19-
> **Beta (v0.0.9).** Core agent, multi-provider routing, and TUI are stable for daily use. Experimental features are flagged below.
19+
> **Beta (v0.0.10).** Core agent, multi-provider routing, and TUI are stable for daily use. Experimental features are flagged below.
2020
2121
Recent highlights:
2222
- **/share** — share sessions via unlisted GitHub Gists `[EXPERIMENTAL]`

docs/agents.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
Coven Code has a named-agent system that lets you select a pre-configured persona with its own tool permissions, model, system prompt, and turn budget. For larger tasks it also supports a coordinator mode where a top-level agent orchestrates a pool of parallel worker agents.
44

5+
> **Coven familiars as agents:** If the Coven daemon is installed, every familiar in `~/.coven/familiars.toml` is automatically available as a named agent in both the `/agents` overlay and the `coven-code agents` CLI. See [Coven Familiars](familiars) for the full reference.
6+
57
---
68

79
## Built-in Named Agents

docs/familiars.md

Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
# Coven Familiars
2+
3+
Coven Code integrates natively with the Coven daemon's familiar roster. When the Coven daemon is installed and running, every familiar you have configured under `~/.coven/` is automatically available inside Coven Code as a selectable agent persona — no extra setup required.
4+
5+
---
6+
7+
## What is a familiar?
8+
9+
A familiar is a named AI persona defined in the Coven ecosystem. Each familiar has an identity (display name, emoji, pronouns), a role description, and optional metadata used to shape how the model presents itself and reasons about tasks. Familiars live under `~/.coven/familiars.toml` and are managed by the Coven daemon.
10+
11+
Examples from the default Coven roster:
12+
13+
| ID | Name | Role |
14+
|---|---|---|
15+
| `nova` | Nova ✨ | Orchestrator, personal AI companion |
16+
| `kitty` | Kitty 🐱 | General helper |
17+
| `cody` | Cody 🤖 | Code-first agent |
18+
| `sage` | Sage 🧙 | Research and reasoning |
19+
| `astra` | Astra 🌙 | Strategy and planning |
20+
| `echo` | Echo 👻 | Reflection and retrospection |
21+
| `charm` | Charm 💜 | Writing and communication |
22+
23+
---
24+
25+
## How familiars appear in Coven Code
26+
27+
When the daemon is present, `load_agent_definitions()` reads `~/.coven/familiars.toml` and converts each familiar into an `AgentDefinition` with:
28+
29+
- **source:** `coven:familiar:<id>` — distinguishes them from user-defined agents
30+
- **instructions:** a synthesised system-prompt body that captures the familiar's name, role, and description
31+
- **memory\_scope:** `workspace` — familiars have full workspace context by default
32+
- **model:** inherits the session default (no override unless the user sets one)
33+
34+
Familiars are appended **after** workspace agents in the list. If a user-defined agent shares the same display name as a familiar, the user definition wins.
35+
36+
---
37+
38+
## The `/agents` overlay
39+
40+
Open the agents panel with the `/agents` slash command inside an interactive session. The overlay splits the list into two sections:
41+
42+
```
43+
Workspace Agents ← .coven-code/agents/*.md
44+
• my-custom-agent default · user
45+
46+
✨ Coven Familiars ← ~/.coven/familiars.toml
47+
★ Nova ✨ Orchestrator — Your personal AI ...
48+
★ Sage 🧙 Research — Deep reasoning and ...
49+
★ Cody 🤖 Code — Focused implementation ...
50+
```
51+
52+
Select a familiar to see its full detail view, including persona preview and the suggested `--agent` invocation.
53+
54+
---
55+
56+
## Switching familiars from the CLI
57+
58+
### List all available agents and familiars
59+
60+
```
61+
coven-code agents list
62+
```
63+
64+
Output groups entries by type:
65+
66+
```
67+
Available Agents (5)
68+
69+
Workspace Agents (2)
70+
• review: Senior code reviewer...
71+
Model: default
72+
73+
✨ Coven Familiars (3)
74+
★ Nova [nova]
75+
Your personal AI companion and orchestrator.
76+
★ Sage [sage]
77+
Research, reasoning, and synthesis.
78+
★ Cody [cody]
79+
Code-first implementation agent.
80+
81+
Switch active familiar: coven-code agent <name>
82+
```
83+
84+
### List only familiars
85+
86+
```
87+
coven-code agents familiars
88+
```
89+
90+
### Inspect a specific familiar
91+
92+
```
93+
coven-code agent nova
94+
```
95+
96+
Output:
97+
98+
```
99+
✨ Activating familiar: Nova
100+
Description: ✨ Orchestrator — Your personal AI companion and orchestrator.
101+
Model: default
102+
103+
Persona preview:
104+
You are ✨ Nova, a Coven familiar with the role of Orchestrator.
105+
Your personal AI companion ...
106+
107+
Start a session to apply this persona:
108+
coven-code --agent "Nova" [prompt]
109+
```
110+
111+
### Start a session as a specific familiar
112+
113+
```
114+
coven-code --agent "Nova" "refactor the auth module"
115+
coven-code --agent "Sage" "what are the tradeoffs in our current DB schema?"
116+
coven-code --agent "Cody" "add unit tests for packages/core"
117+
```
118+
119+
The familiar's persona is prepended to the system prompt. Everything else — tools, providers, turn budget — works as normal.
120+
121+
---
122+
123+
## `familiars.toml` format
124+
125+
Familiars are defined in `~/.coven/familiars.toml`:
126+
127+
```toml
128+
[[familiar]]
129+
id = "nova"
130+
display_name = "Nova"
131+
emoji = ""
132+
role = "Orchestrator"
133+
description = "Your personal AI companion and trusted orchestrator."
134+
pronouns = "she/her"
135+
136+
[[familiar]]
137+
id = "sage"
138+
display_name = "Sage"
139+
emoji = "🧙"
140+
role = "Research & Reasoning"
141+
description = "Deep research, synthesis, and structured thinking."
142+
143+
[[familiar]]
144+
id = "cody"
145+
display_name = "Cody"
146+
emoji = "🤖"
147+
role = "Code Agent"
148+
description = "Fast, focused code implementation and review."
149+
pronouns = "he/him"
150+
```
151+
152+
### Fields
153+
154+
| Field | Required | Description |
155+
|---|---|---|
156+
| `id` || Canonical identifier. Used in `--agent` matching and source tags. |
157+
| `display_name` | | Human-readable name shown in the TUI and CLI. Defaults to `id`. |
158+
| `emoji` | | Emoji shown alongside the name in the agents overlay. |
159+
| `role` | | Short role label — shown in the detail view and persona prefix. |
160+
| `description` | | Full description used to build the persona system prompt. |
161+
| `pronouns` | | Appended to the persona prompt if present. |
162+
163+
---
164+
165+
## Overriding a familiar with a workspace agent
166+
167+
To customise a familiar's behaviour for a specific project, create a `.coven-code/agents/<name>.md` file that matches the familiar's display name. Workspace agents take precedence over familiar-sourced definitions with the same name:
168+
169+
```markdown
170+
---
171+
name: Nova
172+
description: Nova customised for this monorepo
173+
model: anthropic/claude-sonnet-4-6
174+
---
175+
176+
You are Nova ✨, operating inside the OpenCoven monorepo.
177+
Prioritise TypeScript/Rust consistency and follow the OpenCoven
178+
design system for all UI-facing changes.
179+
```
180+
181+
The familiar-sourced entry will be suppressed; only the workspace definition appears.
182+
183+
---
184+
185+
## Standalone mode (no daemon)
186+
187+
If the Coven daemon is not installed or `~/.coven/` does not exist, `load_agent_definitions()` returns only workspace agents. No errors are shown — Coven Code degrades gracefully. Install the Coven daemon to unlock familiars:
188+
189+
```
190+
npm install -g @opencoven/coven
191+
```
192+
193+
Or check the [Coven documentation](https://opencoven.ai/docs) for installation instructions.
194+
195+
---
196+
197+
## Familiar glyphs in the TUI
198+
199+
Each familiar has a dedicated pixel-art glyph rendered in the welcome panel. The active familiar (set via `settings.json``"familiar"`) determines which glyph is shown. The glyph animates — it blinks, shifts pose when loading, and walks left/right across the panel.
200+
201+
Built-in glyphs:
202+
203+
| ID | Concept |
204+
|---|---|
205+
| `kitty` | Cat head — ears, whiskers, square eyes (default) |
206+
| `nova` | 4-point star with orbiting sparks |
207+
| `cody` | Robot face — antenna, bracket eyes |
208+
| `charm` | Heart with sparkle dots |
209+
| `sage` | Wizard hat + star + open book |
210+
| `astra` | Crescent moon + compass star + orbit |
211+
| `echo` | Round ghost + mirror eyes + echo dots |
212+
213+
To change the displayed glyph, set `familiar` in your settings:
214+
215+
```json
216+
{
217+
"familiar": "nova"
218+
}
219+
```
220+
221+
Or run:
222+
223+
```
224+
coven-code config set familiar nova
225+
```
226+
227+
---
228+
229+
## See also
230+
231+
- [Agents and Multi-Agent Features](agents) — workspace agents, coordinator mode, managed agents
232+
- [Configuration](configuration)`settings.json` reference
233+
- [Coven daemon documentation](https://opencoven.ai/docs) — managing familiars, skills, and the full Coven ecosystem

docs/index.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
Coven Code is a high-performance Rust reimplementation of Claude Code — a terminal-native AI coding agent with streaming responses, 40+ built-in tools, 15+ LLM provider integrations, a full ratatui TUI, and an extensible plugin system.
88

9-
**Version:** 0.0.9 (Beta) · **License:** GPL-3.0 · [GitHub](https://github.com/OpenCoven/coven-code)
9+
**Version:** 0.0.10 (Beta) · **License:** GPL-3.0 · [GitHub](https://github.com/OpenCoven/coven-code)
1010

1111
</div>
1212

@@ -184,6 +184,24 @@ See [Slash Commands](commands) for the complete reference.
184184

185185
---
186186

187+
## Coven ecosystem integration
188+
189+
Coven Code connects natively to the [Coven daemon](https://opencoven.ai/docs) when it is running on your machine. With the daemon active:
190+
191+
- **Familiars appear as agents** — every familiar you have configured in `~/.coven/familiars.toml` is automatically surfaced in the `/agents` overlay and the `coven-code agents` command.
192+
- **Skills are visible** — daemon-registered skills are listed as awareness context so the model knows what capabilities are available.
193+
- **Familiar glyphs animate** in the welcome panel using the glyph that matches your configured `"familiar"` setting.
194+
195+
Coven Code is fully standalone without the daemon — install it separately to unlock the Coven ecosystem features.
196+
197+
```
198+
npm install -g @opencoven/coven
199+
```
200+
201+
See [Coven Familiars](familiars) for the full integration reference.
202+
203+
---
204+
187205
## Next steps
188206

189207
- [Installation](installation) — download, build from source, system requirements
@@ -195,5 +213,6 @@ See [Slash Commands](commands) for the complete reference.
195213
- [MCP Integration](mcp) — Model Context Protocol servers
196214
- [Plugins](plugins) — building and using plugins
197215
- [Agents](agents) — multi-agent orchestration
216+
- [Familiars](familiars) — Coven daemon familiars as agent personas
198217
- [Hooks](hooks) — event-driven automation
199218
- [Advanced Features](advanced) — extended thinking, sessions, and more

docs/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ coven-code --version
170170
A successful installation prints the version string, for example:
171171

172172
```
173-
coven-code 0.0.9
173+
coven-code 0.0.10
174174
```
175175

176176
To confirm the binary is the one you installed:

npm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencoven/coven-code",
3-
"version": "0.0.9",
3+
"version": "0.0.10",
44
"description": "Open-source, multi-provider agentic coding TUI for the terminal \u2014 OpenCoven fork of Claurst",
55
"license": "GPL-3.0-only",
66
"repository": {

0 commit comments

Comments
 (0)