obsidian-agent-fleet 0.13.0 → 0.13.4
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 +35 -24
- package/package.json +1 -2
- package/plugin/main.js +83 -83
- package/plugin/manifest.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Fleet for Obsidian
|
|
2
2
|
|
|
3
|
-
**Turn Obsidian into an AI-powered command center. Create autonomous agents, schedule tasks, chat in real-time, connect via Slack, and hook into any MCP service — all from your vault.**
|
|
3
|
+
**Turn Obsidian into an AI-powered command center. Create autonomous agents on Claude Code or OpenAI Codex, schedule tasks, chat in real-time, connect via Slack or Telegram, and hook into any MCP service — all from your vault.**
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -18,7 +18,7 @@ Agent Fleet is an Obsidian plugin that lets you build, configure, and run AI age
|
|
|
18
18
|
|
|
19
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).
|
|
20
20
|
|
|
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
|
|
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 backend session, its own context, its own stats.
|
|
22
22
|
|
|
23
23
|
📊 **Live chat stats** — Compact terminal-style strip under the composer shows the model and a context-usage bar so you always know where you stand on context.
|
|
24
24
|
|
|
@@ -61,7 +61,7 @@ The installer automatically finds your Obsidian vaults and copies the plugin fil
|
|
|
61
61
|
|
|
62
62
|
### Requirements
|
|
63
63
|
|
|
64
|
-
- **Obsidian** 1.
|
|
64
|
+
- **Obsidian** 1.11.4+ (desktop — macOS, Windows, Linux)
|
|
65
65
|
- **At least one CLI backend** — install whichever engine(s) your agents will use:
|
|
66
66
|
- **[Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)** (default):
|
|
67
67
|
```bash
|
|
@@ -86,9 +86,10 @@ On first launch, Agent Fleet creates a `_fleet/` folder in your vault:
|
|
|
86
86
|
_fleet/
|
|
87
87
|
├── agents/
|
|
88
88
|
│ └── fleet-orchestrator/ ← default agent (manages the fleet)
|
|
89
|
-
├── skills/ ←
|
|
89
|
+
├── skills/ ← 22 built-in skills
|
|
90
90
|
├── tasks/
|
|
91
91
|
├── channels/
|
|
92
|
+
├── mcp/ ← registered MCP servers (one file each)
|
|
92
93
|
├── runs/
|
|
93
94
|
└── memory/
|
|
94
95
|
```
|
|
@@ -127,7 +128,7 @@ agents/my-agent/
|
|
|
127
128
|
| **Name & Description** | Identity shown in the dashboard |
|
|
128
129
|
| **Avatar** | Lucide icon picker (1,400+ icons) or emoji |
|
|
129
130
|
| **System Prompt** | Core instructions that define the agent's behavior |
|
|
130
|
-
| **Model** |
|
|
131
|
+
| **Model** | Backend-aware picker — Claude aliases (`opus`/`sonnet`/`haiku`/`opusplan`), pinned IDs, Bedrock/Vertex/Foundry, or Codex slugs; free-text for anything else |
|
|
131
132
|
| **Adapter** | Claude Code or OpenAI Codex — set per agent |
|
|
132
133
|
| **Working Directory** | Where the agent operates (defaults to vault root) |
|
|
133
134
|
| **Timeout** | Max execution time in seconds |
|
|
@@ -203,7 +204,7 @@ If everything is healthy, respond with a one-line "all clear".
|
|
|
203
204
|
|
|
204
205
|
### Slack Channels
|
|
205
206
|
|
|
206
|
-
Chat with your agents from Slack — every message flows through the same Claude
|
|
207
|
+
Chat with your agents from Slack — every message flows through the same chat-session pipeline as the in-app panel (Claude Code or Codex), with full tool use, session persistence, and agent memory.
|
|
207
208
|
|
|
208
209
|
> **📖 [Step-by-step Slack setup guide →](SLACK_SETUP.md)** — complete walkthrough from creating the Slack app to sending your first message.
|
|
209
210
|
|
|
@@ -236,7 +237,7 @@ channel_context: |
|
|
|
236
237
|
- **Socket Mode** — outbound WebSocket, works behind NAT/firewalls, no public URL needed
|
|
237
238
|
- **Slack Assistants API** — native "is thinking..." indicator, threaded conversations, thread titles
|
|
238
239
|
- **Multi-agent routing** — type `@agent-name: message` to switch agents mid-thread. Each agent gets its own isolated session. `/agents` slash command lists available agents.
|
|
239
|
-
- **Session persistence** — conversations survive Obsidian restarts via `
|
|
240
|
+
- **Session persistence** — conversations survive Obsidian restarts via the backend's resume (Claude `--resume` / Codex `exec resume`)
|
|
240
241
|
- **Idle hibernation** — subprocess eviction after configurable idle time, transparent resume on next message
|
|
241
242
|
- **Allowlist** — only approved Slack users (by user ID) can reach the bot
|
|
242
243
|
- **Rate limiting** — per-conversation sliding window to prevent budget burn
|
|
@@ -264,7 +265,7 @@ Chat with your agents from Telegram — simpler setup than Slack, no @mention re
|
|
|
264
265
|
- **Agent name prefix** — replies show `[agent-name]` when multiple agents are configured
|
|
265
266
|
- **Group chat support** — add the bot to groups (disable privacy mode via BotFather for full access)
|
|
266
267
|
- **Forum topics** — enable Threaded Mode in BotFather for topic-based conversations
|
|
267
|
-
- **Session persistence** — conversations survive Obsidian restarts via `
|
|
268
|
+
- **Session persistence** — conversations survive Obsidian restarts via the backend's resume (Claude `--resume` / Codex `exec resume`)
|
|
268
269
|
- **4096-char message splitting** — long replies automatically chunked at paragraph boundaries
|
|
269
270
|
|
|
270
271
|
---
|
|
@@ -275,10 +276,10 @@ The chat panel is a first-class Obsidian view — dock it in the sidebar, center
|
|
|
275
276
|
|
|
276
277
|
**Features:**
|
|
277
278
|
- **Agent Switcher** — dropdown to switch between agents instantly. Each agent has its own conversation.
|
|
278
|
-
- **Session Persistence** — conversations survive Obsidian restarts via Claude
|
|
279
|
+
- **Session Persistence** — conversations survive Obsidian restarts via the backend's resume (Claude `--resume` / Codex `exec resume`)
|
|
279
280
|
- **Bidirectional Streaming** — send follow-up messages while the agent is working. Steer it mid-task.
|
|
280
281
|
- **Document Attachment** — click + to attach the active document. Agent gets the full content; you see a compact pill.
|
|
281
|
-
- **Image Paste & Drop** — paste from clipboard or drag images into chat. Saved to vault, passed to
|
|
282
|
+
- **Image Paste & Drop** — paste from clipboard or drag images into chat. Saved to vault, passed to the agent.
|
|
282
283
|
- **Stop Button** — + button becomes ■ while agent works. Click to abort.
|
|
283
284
|
- **Streaming Markdown** — responses render in real-time with syntax highlighting
|
|
284
285
|
- **Code Block Copy** — hover any code block for a copy button
|
|
@@ -352,14 +353,14 @@ skills/my-skill/
|
|
|
352
353
|
└── examples.md ← Few-shot examples
|
|
353
354
|
```
|
|
354
355
|
|
|
355
|
-
**
|
|
356
|
+
**22 Built-in Skills:**
|
|
356
357
|
|
|
357
358
|
| Skill | Description |
|
|
358
359
|
|-------|-------------|
|
|
359
360
|
| `agent-fleet-system` | Full knowledge of the Agent Fleet plugin |
|
|
360
361
|
| `algorithmic-art` | Generative art with p5.js |
|
|
361
362
|
| `canvas-design` | Visual art, posters, static designs as PNG/PDF |
|
|
362
|
-
| `claude-api` | Build apps with Claude API and Anthropic SDKs |
|
|
363
|
+
| `claude-api` | Build apps with the Claude API and Anthropic SDKs |
|
|
363
364
|
| `doc-coauthoring` | Structured co-authoring workflow for documentation |
|
|
364
365
|
| `docx` | Create, read, edit Word (.docx) files |
|
|
365
366
|
| `frontend-design` | Production-grade web UIs and components |
|
|
@@ -370,8 +371,14 @@ skills/my-skill/
|
|
|
370
371
|
| `skill-creator` | Create, evaluate, and optimize skills |
|
|
371
372
|
| `slack-gif-creator` | Animated GIFs optimized for Slack |
|
|
372
373
|
| `taste-skill` | Senior UI/UX engineering for frontend design |
|
|
373
|
-
| `
|
|
374
|
-
|
|
|
374
|
+
| `theme-factory` | Apply visual themes (colors, fonts) to slides, docs, HTML |
|
|
375
|
+
| `web-artifacts-builder` | Multi-component HTML artifacts with React, Tailwind, shadcn/ui |
|
|
376
|
+
| `webapp-testing` | Test local web apps with Playwright — UI checks, screenshots |
|
|
377
|
+
| `xlsx` | Create, read, edit spreadsheets (.xlsx, .csv, .tsv) |
|
|
378
|
+
| `wiki-ingest` | Ingest sources into a scoped Wiki Keeper wiki |
|
|
379
|
+
| `wiki-query` | Answer a question strictly from wiki content |
|
|
380
|
+
| `wiki-refresh` | Regenerate topic-page `## Summary` blocks from claim history |
|
|
381
|
+
| `wiki-lint` | Weekly Wiki Keeper health check (orphans, stale pages, missing links) |
|
|
375
382
|
|
|
376
383
|
---
|
|
377
384
|
|
|
@@ -431,7 +438,7 @@ completed: 2026-04-03T09:02:30
|
|
|
431
438
|
duration_seconds: 150
|
|
432
439
|
tokens_used: 4500
|
|
433
440
|
cost_usd: 0.07
|
|
434
|
-
model: claude-opus-4-
|
|
441
|
+
model: claude-opus-4-8
|
|
435
442
|
tags: [heartbeat]
|
|
436
443
|
---
|
|
437
444
|
|
|
@@ -456,25 +463,28 @@ Click any run in the dashboard to see full details in a slideover panel.
|
|
|
456
463
|
| Setting | Default | Description |
|
|
457
464
|
|---------|---------|-------------|
|
|
458
465
|
| Fleet Folder | `_fleet` | Root folder for all fleet data |
|
|
459
|
-
| Claude CLI Path | `claude` | Path to Claude Code CLI |
|
|
466
|
+
| Claude CLI Path | `claude` | Path to the Claude Code CLI |
|
|
467
|
+
| Codex CLI Path | `codex` | Path to the OpenAI Codex CLI (used by `codex` agents) |
|
|
460
468
|
| Default Model | `default` | Default model for new agents. Pick Default / Alias (opus/sonnet/haiku/opusplan) / Custom (manual ID for Bedrock/Vertex/etc.) |
|
|
461
469
|
| AWS Region | `us-east-1` | For AWS Bedrock model support |
|
|
462
470
|
| Max Concurrent Runs | `2` | Parallel task execution limit |
|
|
463
471
|
| Run Log Retention | `30` days | Auto-cleanup old logs |
|
|
464
472
|
| Catch Up Missed Tasks | `true` | Run overdue tasks on startup |
|
|
465
473
|
| Notification Level | `all` | `all`, `failures-only`, `none` |
|
|
474
|
+
| Status Bar | `true` | Show the fleet status indicator in Obsidian's status bar |
|
|
475
|
+
| Chat Watchdog Timeout | `10` min | Kill a chat turn after this much silence from the CLI |
|
|
466
476
|
|
|
467
477
|
### Security
|
|
468
478
|
|
|
469
|
-
All secrets — MCP OAuth tokens
|
|
479
|
+
All secrets — MCP OAuth/bearer tokens and channel credentials (Slack/Telegram) — are stored in your OS keychain via Obsidian's SecretStorage API, never in the vault or in your native `~/.claude.json` / `~/.codex/config.toml`. Existing plaintext credentials are migrated from `data.json` to the keychain automatically on first load and the plaintext copies are cleared.
|
|
470
480
|
|
|
471
|
-
|
|
481
|
+
Keychain storage uses Obsidian's SecretStorage API (Obsidian 1.11.4+, the minimum supported version).
|
|
472
482
|
|
|
473
483
|
### Channel Settings
|
|
474
484
|
|
|
475
485
|
| Setting | Default | Description |
|
|
476
486
|
|---------|---------|-------------|
|
|
477
|
-
| Max Concurrent Sessions | `5` | Live
|
|
487
|
+
| Max Concurrent Sessions | `5` | Live agent chat sessions across all channels |
|
|
478
488
|
| Idle Timeout | `15` min | Hibernate sessions after inactivity |
|
|
479
489
|
| Rate Limit | `20` msgs / `5` min | Per-conversation sliding window |
|
|
480
490
|
|
|
@@ -487,10 +497,11 @@ _fleet/
|
|
|
487
497
|
├── agents/ Agent folders (agent.md, config.md, HEARTBEAT.md, etc.)
|
|
488
498
|
├── skills/ Shared skill folders (skill.md, tools.md, etc.)
|
|
489
499
|
├── tasks/ Task files with frontmatter
|
|
490
|
-
├── channels/ Channel bindings (Slack,
|
|
500
|
+
├── channels/ Channel bindings (Slack, Telegram)
|
|
501
|
+
├── mcp/ Registered MCP servers (one markdown file each)
|
|
491
502
|
├── runs/ Execution logs by date
|
|
492
503
|
│ └── YYYY-MM-DD/
|
|
493
|
-
├── memory/
|
|
504
|
+
├── memory/ Per-agent memory (working.md + raw/ archive)
|
|
494
505
|
└── chat-images/ Images pasted into chat
|
|
495
506
|
```
|
|
496
507
|
|
|
@@ -507,10 +518,10 @@ Not necessarily. Agent Fleet works with your **Claude Max or Pro subscription**
|
|
|
507
518
|
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).
|
|
508
519
|
|
|
509
520
|
**Q: Does it work without internet?**
|
|
510
|
-
No — agents need
|
|
521
|
+
No — agents need their CLI backend (Claude Code or OpenAI Codex) to reach its API. But all your data (agents, tasks, skills, memory) is local markdown.
|
|
511
522
|
|
|
512
523
|
**Q: Can I use different models per agent or per task?**
|
|
513
|
-
Yes. Each agent has its own model setting, and you can override it per task (e.g. keep the agent on Opus but run a simple nightly summary task on Haiku to cut cost). Supports Anthropic direct, AWS Bedrock, Google Vertex, Foundry, and Mantle.
|
|
524
|
+
Yes. Each agent has its own model setting, and you can override it per task (e.g. keep the agent on Opus but run a simple nightly summary task on Haiku to cut cost). Supports Anthropic direct, AWS Bedrock, Google Vertex, Foundry, and Mantle. Claude aliases `opus` / `sonnet` / `haiku` / `opusplan` cover the Claude backend; Codex agents use Codex slugs (a Claude-shaped default is ignored on Codex and vice-versa). Resolution order: task → agent → settings → the backend's own CLI default.
|
|
514
525
|
|
|
515
526
|
**Q: What happens if I delete the plugin?**
|
|
516
527
|
Your `_fleet/` folder stays. All agents, tasks, skills, run logs, and memory are plain markdown files in your vault.
|
|
@@ -519,7 +530,7 @@ Your `_fleet/` folder stays. All agents, tasks, skills, run logs, and memory are
|
|
|
519
530
|
Yes, up to `maxConcurrentRuns` (default 2). Additional tasks queue until a slot opens.
|
|
520
531
|
|
|
521
532
|
**Q: Does the chat remember previous conversations?**
|
|
522
|
-
Yes. Each agent has persistent chat sessions that survive Obsidian restarts via Claude
|
|
533
|
+
Yes. Each agent has persistent chat sessions that survive Obsidian restarts via the backend's session resume (Claude `--resume` / Codex `exec resume`).
|
|
523
534
|
|
|
524
535
|
**Q: Does the Slack bot work when Obsidian is closed?**
|
|
525
536
|
No. The bot runs inside Obsidian via Socket Mode — when Obsidian is closed, the bot goes offline. Slack buffers messages briefly during short disconnects.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-agent-fleet",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.4",
|
|
4
4
|
"description": "Obsidian plugin for file-backed AI agents, task scheduling, channels (Slack), heartbeat, and interactive chat.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "plugin/main.js",
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/node": "^24.5.2",
|
|
29
29
|
"@types/ws": "^8.18.1",
|
|
30
|
-
"builtin-modules": "^4.0.0",
|
|
31
30
|
"esbuild": "^0.25.9",
|
|
32
31
|
"obsidian": "^1.8.10",
|
|
33
32
|
"tslib": "^2.8.1",
|