-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathdefault.toml
More file actions
83 lines (65 loc) · 2.69 KB
/
default.toml
File metadata and controls
83 lines (65 loc) · 2.69 KB
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
78
79
80
81
82
83
# ICM Configuration
#
# Location (platform-specific):
# macOS: ~/Library/Application Support/dev.icm.icm/config.toml
# Linux: ~/.config/icm/config.toml
# Windows: C:\Users\<user>\AppData\Roaming\icm\icm\config\config.toml
# Or override with: ICM_CONFIG=/path/to/config.toml
[store]
# SQLite database path (default: platform data dir).
# Uncomment to use a custom location:
# path = "/custom/path/to/memories.db"
[memory]
default_importance = "medium"
# Decay rate per day (0.95 = loses 5% per day)
decay_rate = 0.95
# Weight threshold for automatic pruning
prune_threshold = 0.1
[embeddings]
# Set to false to disable embeddings entirely (no model download, keyword search only)
# enabled = false
# Embedding model (fastembed model_code). Default: multilingual-e5-small (384d, 100+ languages)
# Other options:
# "BAAI/bge-small-en-v1.5" — 384d, English-only (fastest)
# "Xenova/bge-small-en-v1.5" — 384d, quantized English-only
# "intfloat/multilingual-e5-base" — 768d, multilingual (more accurate, slower)
# "intfloat/multilingual-e5-large" — 1024d, multilingual (best accuracy, largest)
# "Xenova/all-MiniLM-L12-v2" — 384d, English
# "jinaai/jina-embeddings-v2-base-code" — 768d, code-optimized
model = "intfloat/multilingual-e5-base"
[extraction]
# Layer 0: rule-based fact extraction (zero LLM cost)
enabled = true
# Minimum keyword score to keep a fact
min_score = 3.0
# Maximum facts per extraction pass
max_facts = 10
# Extract every N PostToolUse hook fires (i.e. every N tool calls in a
# Claude Code / Gemini / Codex / Copilot session). Lower = more
# aggressive (more memories, more noise); higher = quieter. The
# `--every` CLI flag on `icm hook post` overrides this.
extract_every = 3
# Store the raw tool output as a low-importance memory when the
# rule-based extractor produces no facts. Useful as a coarse safety
# net; set to `false` if you only want signal-rich extractions.
store_raw = true
[recall]
# Layer 2: context injection before sessions
enabled = true
# Maximum memories to inject
limit = 15
[wakeup]
# SessionStart hook (Layer 1): wake-up pack of critical/high-importance
# memories injected at session start.
# Token budget for the pack (~4 chars/token). Increase for richer context;
# decrease if your tool's system prompt is already tight.
max_tokens = 500
# Include preference / identity memories regardless of project filter so
# user-wide settings (style, language, conventions) leak through into
# every project's wake-up.
include_preferences = true
[mcp]
# MCP server transport: "stdio"
transport = "stdio"
# Custom instructions appended to MCP server description
# instructions = "Always recall before starting work"