1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Spool Configuration Example
# Copy this file to ~/.spool/config.toml and adjust paths for your setup.
# ─── Vault ────────────────────────────────────────────────────────────────────
[]
# Absolute path to your Obsidian vault root directory.
= "/path/to/your/obsidian/vault"
[]
# Maximum number of markdown files to scan in the vault.
= 5000
# Maximum size (bytes) of a single file to process. Files larger than this are skipped.
= 524288 # 512 KB
# Maximum total bytes to read across all scanned files.
= 16777216 # 16 MB
# Maximum directory depth to traverse when scanning.
= 12
# ─── Output ───────────────────────────────────────────────────────────────────
[]
# Default output format for retrieval commands: "prompt", "markdown", or "json".
= "prompt"
# Maximum characters in rendered output.
= 12000
# Maximum number of notes to include in retrieval results.
= 8
# Maximum number of lifecycle memories to include in get/wakeup context.
= 5
# ─── Developer ────────────────────────────────────────────────────────────────
[]
# Vault-relative paths to scan for developer-wide notes (not project-specific).
# These are always included regardless of which project is matched.
= ["00-Identity", "20-Areas", "30-Workflows"]
# ─── Projects ─────────────────────────────────────────────────────────────────
# Define one or more projects. Spool routes requests by matching --cwd against
# repo_paths. Each project can have its own note_roots, tags, and modules.
[[]]
# Unique identifier for this project.
= "my-project"
# Human-readable project name.
= "My Project"
# Absolute paths to repositories that belong to this project.
# When --cwd matches one of these, this project is selected.
= ["/path/to/my-project"]
# Vault-relative paths to scan for this project's notes.
= ["10-Projects", "20-Areas", "40-Permanent"]
# Default tags used for scoring boost when matched.
= ["rust", "cli"]
# Modules define sub-areas within a project for finer-grained matching.
[[]]
# Module identifier.
= "routing"
# Source path prefixes that belong to this module.
= ["src/engine", "src/config"]
# Keywords that boost notes matching this module.
= ["route", "routing", "match"]
[[]]
= "vault"
= ["src/vault"]
= ["markdown", "frontmatter", "wikilink", "heading"]
# ─── Scenes ───────────────────────────────────────────────────────────────────
# Scenes represent common work contexts (planning, debugging, etc.).
# When task keywords match a scene, its preferred notes get a scoring boost.
[[]]
= "planning"
= ["planning", "design", "architecture", "phase"]
[[]]
= "debugging"
= ["debug", "error", "fix", "troubleshoot"]