obsidian-agent-fleet 0.10.0 → 0.12.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 +63 -16
- package/package.json +1 -1
- package/plugin/main.js +286 -115
- package/plugin/manifest.json +1 -1
- package/plugin/styles.css +207 -0
package/README.md
CHANGED
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
## What is Agent Fleet?
|
|
10
10
|
|
|
11
|
-
Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI agents directly from your vault. Agents
|
|
11
|
+
Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI agents directly from your vault. Agents run on the CLI backend of your choice — **Claude Code** (Claude Max/Pro subscription or Anthropic API key) or **OpenAI Codex** — selectable per agent. Every agent, skill, task, and run log is a markdown file. If the plugin disappears, your knowledge stays.
|
|
12
12
|
|
|
13
13
|
### Core Capabilities
|
|
14
14
|
|
|
15
15
|
🤖 **AI Agents** — Create specialized agents with system prompts, skills, permissions, heartbeat schedules, and memory. Each agent is a folder of markdown files you fully own and control.
|
|
16
16
|
|
|
17
|
+
🔀 **Dual CLI backends** — Run each agent on **Claude Code** or **OpenAI Codex**, set per agent. Models, chat, tasks, heartbeat, channels, and permission rules all work the same on either backend — pick the engine, keep the workflow.
|
|
18
|
+
|
|
17
19
|
📚 **Wiki Keeper** — Turn any folder in your vault into a self-maintaining wiki in the spirit of Karpathy's "LLM wiki" pattern. Drop sources into an inbox, point at existing note folders as passive watched sources, and a scoped keeper agent ingests them into an interlinked `_topics/` tree with cross-references, citations, and a log. Each topic page carries a refreshable `## Summary` block synthesized from its claims history, so query-time reads stay cheap as the wiki grows. Substantive Q&A answers compound back into the wiki — both as filed synthesis pages and as dated bullets on every cited topic. Weekly lint surfaces orphans, contradictions, dedup candidates, and stale summaries; the dashboard's Wiki Keepers tab renders the review queue. Scales from one whole-vault keeper to many project-scoped instances; any other agent (e.g. a PM agent) can reference a keeper's scope and query or contribute. See the [Wiki Keeper Guide](WIKI_KEEPER_GUIDE.md).
|
|
18
20
|
|
|
19
21
|
💬 **Interactive Chat** — Dock a chat panel anywhere in Obsidian. Switch between agents. Attach documents and images. Send follow-up messages while the agent works. **Inline threads** under any assistant reply let you tangent without polluting the main thread — each thread has its own Claude session, its own context, its own stats.
|
|
@@ -30,7 +32,7 @@ Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI age
|
|
|
30
32
|
|
|
31
33
|
🔌 **MCP Integration** — Add, remove, authenticate, and inspect MCP servers from the dashboard. One-click OAuth 2.1 with automatic CLI token injection — agents can use authenticated servers immediately.
|
|
32
34
|
|
|
33
|
-
🧠 **Agent Memory** —
|
|
35
|
+
🧠 **Agent Memory** — A two-tier, self-curating memory (curated working set + append-only ground truth) that agents write via a `remember` tool or `[REMEMBER]` tags, on both Claude and Codex. An optional nightly **reflection** consolidates it and can propose new skills from recurring patterns (approval-gated).
|
|
34
36
|
|
|
35
37
|
📊 **Dashboard** — Overview with run charts, success rates, token/cost tracking, activity timeline, fleet status, streaming output from active agents, and focused run-detail panels that lead with the final result and hide the full reasoning transcript behind a toggle.
|
|
36
38
|
|
|
@@ -60,12 +62,21 @@ The installer automatically finds your Obsidian vaults and copies the plugin fil
|
|
|
60
62
|
### Requirements
|
|
61
63
|
|
|
62
64
|
- **Obsidian** 1.6.0+ (desktop — macOS, Windows, Linux)
|
|
63
|
-
- **
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
- **At least one CLI backend** — install whichever engine(s) your agents will use:
|
|
66
|
+
- **[Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)** (default):
|
|
67
|
+
```bash
|
|
68
|
+
npm install -g @anthropic-ai/claude-code
|
|
69
|
+
claude # authenticate on first run
|
|
70
|
+
```
|
|
71
|
+
Works with a **Claude Max or Pro subscription** or an **Anthropic API key** — no separate API costs if you already subscribe.
|
|
72
|
+
- **[OpenAI Codex CLI](https://github.com/openai/codex)** (optional, for `codex` agents):
|
|
73
|
+
```bash
|
|
74
|
+
npm install -g @openai/codex
|
|
75
|
+
codex login # authenticate on first run
|
|
76
|
+
```
|
|
77
|
+
Works with a **ChatGPT Plus/Pro plan** or an **OpenAI API key**.
|
|
78
|
+
|
|
79
|
+
You only need the backend(s) your agents are configured to use — Claude-only users never pay the Codex probe, and vice versa.
|
|
69
80
|
|
|
70
81
|
### First Launch
|
|
71
82
|
|
|
@@ -117,14 +128,14 @@ agents/my-agent/
|
|
|
117
128
|
| **Avatar** | Lucide icon picker (1,400+ icons) or emoji |
|
|
118
129
|
| **System Prompt** | Core instructions that define the agent's behavior |
|
|
119
130
|
| **Model** | Claude Opus 4.6, Sonnet 4.6, Haiku 4.5, Bedrock models, or custom |
|
|
120
|
-
| **Adapter** | Claude Code
|
|
131
|
+
| **Adapter** | Claude Code or OpenAI Codex — set per agent |
|
|
121
132
|
| **Working Directory** | Where the agent operates (defaults to vault root) |
|
|
122
133
|
| **Timeout** | Max execution time in seconds |
|
|
123
134
|
| **Permission Mode** | bypassPermissions, dontAsk, acceptEdits, or plan |
|
|
124
|
-
| **Allow/Deny Lists** | Fine-grained tool control (e.g., allow `Bash(curl *)`, deny `Bash(rm -rf *)`) |
|
|
135
|
+
| **Allow/Deny Lists** | Fine-grained tool control (e.g., allow `Bash(curl *)`, deny `Bash(rm -rf *)`). Enforced on both backends — Claude Code natively, Codex via execpolicy command rules (see [Backends](#backends)) |
|
|
125
136
|
| **Skills** | Shared skills from the skill library |
|
|
126
137
|
| **MCP Servers** | Which MCP servers the agent can access |
|
|
127
|
-
| **Memory** |
|
|
138
|
+
| **Memory** | Two-tier self-curating memory: `remember` tool / `[REMEMBER]` tags → working set + raw archive, with optional nightly reflection |
|
|
128
139
|
| **Heartbeat** | Autonomous periodic run with schedule and instruction |
|
|
129
140
|
|
|
130
141
|
**Permission Modes:**
|
|
@@ -138,6 +149,31 @@ agents/my-agent/
|
|
|
138
149
|
|
|
139
150
|
---
|
|
140
151
|
|
|
152
|
+
### Backends
|
|
153
|
+
|
|
154
|
+
Each agent runs on one of two CLI backends, selected by the **Adapter** field in the agent editor:
|
|
155
|
+
|
|
156
|
+
| | **Claude Code** (default) | **OpenAI Codex** |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| Engine | `@anthropic-ai/claude-code` | `@openai/codex` (`codex exec`) |
|
|
159
|
+
| Auth | Claude Max/Pro subscription or Anthropic API key | ChatGPT Plus/Pro plan or OpenAI API key |
|
|
160
|
+
| Models | `opus` / `sonnet` / `haiku` / `opusplan` aliases, pinned IDs, Bedrock/Vertex/Foundry | Codex slugs (e.g. `gpt-5.5-codex`) + free-text |
|
|
161
|
+
| Permission rules | Native — `.claude/settings.local.json` | execpolicy command rules via per-agent `CODEX_HOME` overlay |
|
|
162
|
+
| File/network sandbox | Permission Mode | Permission Mode (`workspace-write` / `read-only`); `codex exec` forces approval policy `never` |
|
|
163
|
+
| MCP servers | Claude's registry | Codex's `~/.codex/config.toml`, scoped per agent |
|
|
164
|
+
|
|
165
|
+
Everything else — chat, tasks, heartbeat, Slack/Telegram channels, memory, run logs, model picker — works identically on both. The picker switches its alias list based on the selected adapter; free-text remains the escape hatch for any model ID.
|
|
166
|
+
|
|
167
|
+
**How Codex permission rules work.** Your `Bash(...)` allow/deny rules are translated into Codex *execpolicy* rules and injected through a per-agent `CODEX_HOME` overlay (the agent's `~/.codex` with auth/config/sessions symlinked through, but its own rules directory). This enforcement is **lossy by design** and degrades safely:
|
|
168
|
+
|
|
169
|
+
- Only command-prefix patterns translate — `Bash(git push *)` → deny `git push …`. **Tool-name rules** (`Read`/`Write`/`Edit`) and **mid-pattern wildcards** (`Bash(* --force)`) are dropped; file/network access is governed by the **Permission Mode** sandbox instead.
|
|
170
|
+
- There's no closed allow-list — Codex `allow` rules are additive, so "only the allow-list runs" (Claude's `dontAsk`) is **not** reproducible; the sandbox is the real boundary.
|
|
171
|
+
- Requires a Codex build with execpolicy support. If it's missing (or `~/.codex` isn't set up, or symlinks are unavailable), the agent **falls back to sandbox-only enforcement** with a one-time console warning — the run never breaks.
|
|
172
|
+
|
|
173
|
+
> Codex reports no per-run dollar cost, so `cost_usd` is blank on Codex runs. Compact/rate-limit telemetry is Claude-only.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
141
177
|
### Heartbeat
|
|
142
178
|
|
|
143
179
|
A heartbeat gives an agent autonomous behavior — what it does when no one is asking. Think periodic monitoring, daily reports, health checks, or trend analysis.
|
|
@@ -371,12 +407,20 @@ The main overview with:
|
|
|
371
407
|
|
|
372
408
|
### Agent Memory
|
|
373
409
|
|
|
374
|
-
|
|
410
|
+
A two-tier, self-curating memory that works on **task, heartbeat, and chat** runs and on **both Claude Code and Codex** backends. Per agent, under `_fleet/memory/<agent>/`:
|
|
411
|
+
|
|
412
|
+
- **`working.md`** — curated, **token-budgeted** memory (`memory_token_budget`, default 1500) injected into every run, organized into Preferences (pinned) / Procedures / Observations / Recent.
|
|
413
|
+
- **`raw/<date>.md`** — append-only ground-truth log of everything captured (never injected), so summaries can always be re-derived.
|
|
414
|
+
|
|
415
|
+
**How an agent records something** (two channels, same sink):
|
|
416
|
+
1. The **`remember` tool** — `remember(fact, pin?, section?)`, auto-enabled for memory agents (preferred, structured).
|
|
417
|
+
2. The **`[REMEMBER] … [/REMEMBER]`** text tag as a fallback (`[REMEMBER:pin]` for standing preferences).
|
|
375
418
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
3.
|
|
379
|
-
|
|
419
|
+
Captures land in `working.md` immediately, so the next run/turn sees them. Memory is agent-scoped (shared across all conversations, including channels).
|
|
420
|
+
|
|
421
|
+
**Reflection ("dreaming")** — enable `reflection_enabled` and a nightly run (`reflection_schedule`, default `0 3 * * *`) consolidates memory from the raw log: dedups, resolves contradictions, summarizes from ground truth to fit the budget, and keeps pinned preferences. With `reflection_propose_skills`, recurring friction becomes an approval-gated **skill proposal** in the Inbox. A failed reflection never wipes memory. Trigger manually with **Reflect now** on the agent.
|
|
422
|
+
|
|
423
|
+
> Legacy single-file memory (`_fleet/memory/<agent>.md`) is migrated automatically. `memory_max_entries` is superseded by `memory_token_budget`.
|
|
380
424
|
|
|
381
425
|
---
|
|
382
426
|
|
|
@@ -467,6 +511,9 @@ Everything is searchable, version-controllable, and fully yours.
|
|
|
467
511
|
**Q: Do I need an API key?**
|
|
468
512
|
Not necessarily. Agent Fleet works with your **Claude Max or Pro subscription** via Claude Code CLI. No separate API key or billing. If you prefer, you can also use an Anthropic API key directly.
|
|
469
513
|
|
|
514
|
+
**Q: Can I use OpenAI Codex instead of Claude?**
|
|
515
|
+
Yes. Set an agent's **Adapter** to `OpenAI Codex` and it runs on the `@openai/codex` CLI (ChatGPT plan or OpenAI API key) instead of Claude Code. You can mix freely — some agents on Claude, others on Codex — in the same fleet. Chat, tasks, heartbeat, channels, and memory all work the same. See [Backends](#backends) for the per-backend differences (notably how command permission rules are enforced and that Codex runs report no dollar cost).
|
|
516
|
+
|
|
470
517
|
**Q: Does it work without internet?**
|
|
471
518
|
No — agents need the Claude API to run. But all your data (agents, tasks, skills, memory) is local markdown.
|
|
472
519
|
|
package/package.json
CHANGED