brain-framework 18.4.0__tar.gz → 19.0.0__tar.gz
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.
- {brain_framework-18.4.0 → brain_framework-19.0.0}/PKG-INFO +22 -77
- {brain_framework-18.4.0 → brain_framework-19.0.0}/README.md +20 -76
- {brain_framework-18.4.0 → brain_framework-19.0.0}/THIRD_PARTY_NOTICES.md +31 -31
- {brain_framework-18.4.0 → brain_framework-19.0.0}/pyproject.toml +3 -2
- {brain_framework-18.4.0 → brain_framework-19.0.0}/pyproject.toml.orig +5 -3
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/__init__.py +1 -1
- brain_framework-19.0.0/src/bf/assistants.py +1074 -0
- brain_framework-19.0.0/src/bf/channels.py +235 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/cli.py +161 -41
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/collect.py +171 -191
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/config.py +47 -15
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/evaluate.py +36 -21
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/graph.py +51 -29
- brain_framework-19.0.0/src/bf/health.py +521 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/history.py +31 -15
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/index.py +469 -221
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/links.py +6 -7
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/markdown.py +75 -12
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/mcp.py +1 -1
- brain_framework-19.0.0/src/bf/messages.py +55 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/models.py +240 -54
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/ontology.py +4 -1
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/pages.py +178 -98
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/records.py +96 -17
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/replies.py +22 -3
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/retrieve.py +37 -30
- brain_framework-19.0.0/src/bf/runtime.py +946 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/schedule.py +20 -8
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/README.md +7 -7
- brain_framework-19.0.0/src/bf/skills/bf-action/SKILL.md +53 -0
- brain_framework-19.0.0/src/bf/skills/bf-action/references/actions.md +27 -0
- brain_framework-19.0.0/src/bf/skills/bf-action/references/context.md +21 -0
- brain_framework-19.0.0/src/bf/skills/bf-action/references/handoff.md +42 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-action/scripts/check-handoff.py +2 -6
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-action/scripts/new-action.py +22 -5
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-action/templates/action.md +1 -1
- brain_framework-19.0.0/src/bf/skills/bf-maintain/SKILL.md +57 -0
- brain_framework-19.0.0/src/bf/skills/bf-maintain/references/conflicts.md +14 -0
- brain_framework-19.0.0/src/bf/skills/bf-maintain/references/integrations.md +90 -0
- brain_framework-19.0.0/src/bf/skills/bf-maintain/references/operations.md +63 -0
- brain_framework-19.0.0/src/bf/skills/bf-setup/SKILL.md +64 -0
- brain_framework-19.0.0/src/bf/skills/bf-setup/references/discovery.md +32 -0
- brain_framework-19.0.0/src/bf/skills/bf-setup/references/import.md +36 -0
- brain_framework-19.0.0/src/bf/skills/bf-setup/references/scan.md +27 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/SKILL.md +73 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/consolidate.md +9 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/decisions.md +31 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/evidence.md +61 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/learn.md +39 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/links.md +59 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/retrieval.md +39 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/review.md +10 -0
- brain_framework-19.0.0/src/bf/skills/bf-use/references/share.md +12 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-use/scripts/evidence.py +39 -11
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-use/scripts/guarded-write.py +113 -5
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-use/templates/concept.md +1 -1
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/starter/AGENTS.md +4 -4
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/storage.py +93 -26
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/update.py +84 -108
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/validate.py +72 -27
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/watch.py +305 -115
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/watch_settings.py +8 -4
- brain_framework-18.4.0/src/bf/health.py +0 -251
- brain_framework-18.4.0/src/bf/skills/bf-action/SKILL.md +0 -57
- brain_framework-18.4.0/src/bf/skills/bf-action/references/actions.md +0 -38
- brain_framework-18.4.0/src/bf/skills/bf-action/references/context.md +0 -27
- brain_framework-18.4.0/src/bf/skills/bf-action/references/handoff.md +0 -48
- brain_framework-18.4.0/src/bf/skills/bf-maintain/SKILL.md +0 -61
- brain_framework-18.4.0/src/bf/skills/bf-maintain/references/conflicts.md +0 -14
- brain_framework-18.4.0/src/bf/skills/bf-maintain/references/integrations.md +0 -76
- brain_framework-18.4.0/src/bf/skills/bf-maintain/references/operations.md +0 -74
- brain_framework-18.4.0/src/bf/skills/bf-setup/SKILL.md +0 -67
- brain_framework-18.4.0/src/bf/skills/bf-setup/references/discovery.md +0 -38
- brain_framework-18.4.0/src/bf/skills/bf-setup/references/import.md +0 -40
- brain_framework-18.4.0/src/bf/skills/bf-setup/references/scan.md +0 -37
- brain_framework-18.4.0/src/bf/skills/bf-use/SKILL.md +0 -69
- brain_framework-18.4.0/src/bf/skills/bf-use/references/consolidate.md +0 -9
- brain_framework-18.4.0/src/bf/skills/bf-use/references/decisions.md +0 -33
- brain_framework-18.4.0/src/bf/skills/bf-use/references/evidence.md +0 -61
- brain_framework-18.4.0/src/bf/skills/bf-use/references/learn.md +0 -55
- brain_framework-18.4.0/src/bf/skills/bf-use/references/links.md +0 -56
- brain_framework-18.4.0/src/bf/skills/bf-use/references/retrieval.md +0 -48
- brain_framework-18.4.0/src/bf/skills/bf-use/references/review.md +0 -25
- brain_framework-18.4.0/src/bf/skills/bf-use/references/share.md +0 -12
- {brain_framework-18.4.0 → brain_framework-19.0.0}/LICENSE +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/__main__.py +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/install.py +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/py.typed +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/schemas.py +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-setup/scripts/inventory.py +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/skills/bf-use/templates/project.md +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/starter/concepts/index.md +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/starter/concepts/welcome.md +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/starter/evals/retrieval.yaml +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/starter/gitignore +0 -0
- {brain_framework-18.4.0 → brain_framework-19.0.0}/src/bf/usage.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: brain-framework
|
|
3
|
-
Version:
|
|
3
|
+
Version: 19.0.0
|
|
4
4
|
Summary: 🧠 Brain Framework: from information to informed actions.
|
|
5
5
|
Keywords: ai,ai-agents,agent-memory,context-engineering,knowledge-management,local-first,mcp,model-context-protocol,python,second-brain
|
|
6
6
|
Author: Médéric Hurier
|
|
@@ -21,6 +21,7 @@ Requires-Dist: pyyaml>=6.0.3,<7
|
|
|
21
21
|
Requires-Dist: rich>=15.0.0,<16
|
|
22
22
|
Requires-Dist: typer>=0.27.2,<1
|
|
23
23
|
Requires-Python: >=3.14
|
|
24
|
+
Project-URL: Changelog, https://fmind.github.io/brain-framework/changelog/
|
|
24
25
|
Project-URL: Documentation, https://fmind.github.io/brain-framework/
|
|
25
26
|
Project-URL: Issues, https://github.com/fmind/brain-framework/issues
|
|
26
27
|
Project-URL: Repository, https://github.com/fmind/brain-framework
|
|
@@ -43,12 +44,12 @@ A second brain for you, your team and your AI agents, on your own computer. Gath
|
|
|
43
44
|
|
|
44
45
|
[](https://github.com/fmind/brain-framework/actions/workflows/ci.yml) [](https://pypi.org/project/brain-framework/) [](https://pypi.org/project/brain-framework/) [](https://github.com/fmind/brain-framework/blob/main/LICENSE)
|
|
45
46
|
|
|
46
|
-
[Why](https://github.com/fmind/brain-framework#why-a-second-brain) · [How it works](https://github.com/fmind/brain-framework#how-it-works) · [Try it](https://github.com/fmind/brain-framework#try-it) · [Agents](https://github.com/fmind/brain-framework#open-your-agent-in-your-brain) · [Good to know](https://github.com/fmind/brain-framework#good-to-know) · [Four-tool
|
|
47
|
+
[Why](https://github.com/fmind/brain-framework#why-a-second-brain) · [How it works](https://github.com/fmind/brain-framework#how-it-works) · [Try it](https://github.com/fmind/brain-framework#try-it) · [Agents](https://github.com/fmind/brain-framework#open-your-agent-in-your-brain) · [Good to know](https://github.com/fmind/brain-framework#good-to-know) · [Four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/) · [Documentation](https://fmind.github.io/brain-framework/)
|
|
47
48
|
|
|
48
49
|
<a href="https://raw.githubusercontent.com/fmind/brain-framework/main/docs/assets/brain-loop.svg">
|
|
49
50
|
<img
|
|
50
51
|
src="https://raw.githubusercontent.com/fmind/brain-framework/main/docs/assets/brain-loop.svg"
|
|
51
|
-
alt="The Brain Framework loop: sensors gather evidence from your tools into a brain folder; bf.yaml declares the ontology, sensors, routines and watch; memories, projects, concepts and actions form a knowledge graph; agents read that context, act through the same CLIs, APIs, MCP servers and browsers, and write outcomes back."
|
|
52
|
+
alt="The Brain Framework loop: sensors gather evidence from your tools into a brain folder; bf.yaml declares the ontology, sensors, routines, assistants, channels and watch settings; memories, projects, concepts and actions form a knowledge graph; agents read that context, act through the same CLIs, APIs, MCP servers and browsers, and write outcomes back."
|
|
52
53
|
width="960"
|
|
53
54
|
>
|
|
54
55
|
</a>
|
|
@@ -84,7 +85,7 @@ Questions that once took a tour of your tools become one prompt, once you write
|
|
|
84
85
|
- **Every source, even the ones no product connects.** Mail, calendar, documents, chat, issues and pull requests, of course. But also the release notes and security advisories of the tools you depend on, model retirement dates, provider incidents, mentions of your projects on Hacker News or Bluesky, your domains' certificates and mail security, repository traffic that GitHub forgets after 14 days and your past agent sessions. If you can script it, you can collect it.
|
|
85
86
|
- **Unlimited integrations, both ways.** A sensor is a small program that prints JSON: wrap a CLI such as `gh`, `gws` or `gcloud`, call an API, drive a browser, query a database or parse an export. The same CLIs, APIs and MCP servers then let your agent act on what it learned: draft the issue, answer the thread, fix the alert.
|
|
86
87
|
- **One vocabulary, one knowledge graph.** Each tool names things its own way. You declare a small ontology in `bf.yaml` and sensors map provider fields into it at collection, so the same project, person or repository connects across every tool. BF turns those explicit links into a graph you navigate in one read, each claim pointing back to its evidence.
|
|
87
|
-
- **Private by design.** Your brain is a folder on your disk. BF has no account, server or telemetry and never runs a model itself: [
|
|
88
|
+
- **Private by design.** Your brain is a folder on your disk. BF has no account, server or telemetry and never runs a model itself: [assistants](https://fmind.github.io/brain-framework/docs/prompts/) launch your agent harness. Search and read work offline.
|
|
88
89
|
- **Portable and versioned.** Markdown notes, JSON records and scripts: open them in any editor, grep them, copy them to another machine. Keep the brain in a private Git repository for history, rollback, review and conflict resolution.
|
|
89
90
|
- **For you or your whole team.** A personal brain stays on your laptop. A team brain is a private Git repository with one clone per teammate, so decisions, reviewed evidence and next steps are shared by everyone and their agents. Your personal brain can include the team's in its searches.
|
|
90
91
|
- **Any agent, guided by skills.** Claude Code, Codex, GitHub Copilot, Antigravity or your own agent reach the same brain through the `bf` command, packaged skills or MCP. The skills teach them to find evidence, keep notes current, connect sources and maintain the brain.
|
|
@@ -95,7 +96,7 @@ Hosted personal agents run on someone else's computer, connect the sources their
|
|
|
95
96
|
|
|
96
97
|
### What one brain can gather
|
|
97
98
|
|
|
98
|
-
The author's own brain runs more than
|
|
99
|
+
The author's own brain runs more than 80 sensors and holds about 50,000 records (counted on 2026-10-16):
|
|
99
100
|
|
|
100
101
|
| Area | Collected evidence |
|
|
101
102
|
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -104,7 +105,7 @@ The author's own brain runs more than 50 sensors and holds over 60,000 records (
|
|
|
104
105
|
| Agents | Claude Code, Codex, Copilot and other agent sessions and memories, so a past conclusion is one search away. |
|
|
105
106
|
| Your stack | Release notes, security bulletins and advisories of the tools you use, model retirements and provider outages. |
|
|
106
107
|
| Your presence | Mentions on GitHub, Hacker News and Bluesky; domain expiry, mail security and certificate transparency; site and repository traffic. |
|
|
107
|
-
| Reading | RSS feeds, newsletters, bookmarks
|
|
108
|
+
| Reading | RSS feeds, newsletters, bookmarks and Hacker News. |
|
|
108
109
|
|
|
109
110
|
These are personal sensors, not bundled connectors. The repository ships [reviewed starting points](https://github.com/fmind/brain-framework#bring-your-tools), and the `bf-setup` skill helps your agent connect a new source.
|
|
110
111
|
|
|
@@ -122,10 +123,11 @@ A brain gives your work the structure of a detective's case file, in plain files
|
|
|
122
123
|
| `concepts/` | Knowledge you will reuse elsewhere, with its evidence and limits. | “Explain the product before asking for signup.” |
|
|
123
124
|
| `actions/` | One work session: objective, inputs, outputs, outcome and next step. | `actions/2026-09-27_website-review/ACTION.md`, resumed the next day. |
|
|
124
125
|
| `routines/` | Deterministic programs you review, run on demand, on a schedule or from Git. | A weekly review that drafts an action listing projects to revisit. |
|
|
125
|
-
| `prompts/` | Markdown prompts your agent harness runs
|
|
126
|
+
| `prompts/` | Markdown prompts your agent harness runs; each run's reply is a record. | An assistant that reviews new mail and chat every half hour. |
|
|
127
|
+
| `channels/` | Scripts you review that send, read or stream messages for assistants. | A script that posts an assistant's answer in your chat thread. |
|
|
126
128
|
| `evals/` | Saved questions with the evidence that search or read must return. | “Why one page?” must return the project's Decision section. |
|
|
127
129
|
|
|
128
|
-
Notes are Markdown with YAML metadata, records are JSON, and `bf validate` checks both. The SQLite search cache in `.bf/` is disposable and rebuilds itself from the files. See the [file conventions](https://fmind.github.io/brain-framework/docs/brain/#directory-reference).
|
|
130
|
+
Notes are Markdown with YAML metadata, records are JSON, and `bf validate` checks both. `bf init --full` creates `sensors/` and `routines/`; create `prompts/` and `channels/` when you add an [assistant](https://fmind.github.io/brain-framework/docs/prompts/). An assistant's records hold model output, so search weighs them at half, like a low-priority source. The SQLite search cache in `.bf/` is disposable and rebuilds itself from the files. See the [file conventions](https://fmind.github.io/brain-framework/docs/brain/#directory-reference).
|
|
129
131
|
|
|
130
132
|
### `bf.yaml`, the coordination hub
|
|
131
133
|
|
|
@@ -133,7 +135,7 @@ One file declares what the brain knows how to name, collect and check:
|
|
|
133
135
|
|
|
134
136
|
```yaml
|
|
135
137
|
# https://fmind.github.io/brain-framework/docs/configuration/
|
|
136
|
-
version:
|
|
138
|
+
version: 8
|
|
137
139
|
name: brain
|
|
138
140
|
fields: # the ontology: shared fields and typed relations
|
|
139
141
|
project: { type: identity, cardinality: one, relation: true, description: Project the source names. }
|
|
@@ -158,7 +160,9 @@ watch: # keep sources fresh and alert on failure
|
|
|
158
160
|
notifications: failure
|
|
159
161
|
```
|
|
160
162
|
|
|
161
|
-
BF runs each program with its configured arguments and no shell, bounds its time and output, validates what it prints and keeps its stderr in `logs/`. A failed run
|
|
163
|
+
BF runs each program with its configured arguments and no shell, bounds its time and output, validates what it prints and keeps its stderr in `logs/`. A failed sensor run preserves its evidence; assistant answers and delivery obligations have durable recovery. `bf watch` keeps due sensors, routines and assistants fresh in a terminal dashboard, and `bf schedule` generates native systemd, launchd or cron jobs for you to install. See [sensors](https://fmind.github.io/brain-framework/docs/sensors/), [routines](https://fmind.github.io/brain-framework/docs/routines/) and [watch and schedule](https://fmind.github.io/brain-framework/docs/schedule/).
|
|
164
|
+
|
|
165
|
+
[Assistants and channels](https://fmind.github.io/brain-framework/docs/prompts/) connect your own harness to any messaging surface through small scripts: receive messages, reply in their thread, review on a schedule and fan out saved answers. The [offline messaging example](https://github.com/fmind/brain-framework/tree/main/examples/channels) demonstrates the full loop without a provider or model.
|
|
162
166
|
|
|
163
167
|
### One vocabulary, set at collection
|
|
164
168
|
|
|
@@ -182,22 +186,7 @@ Reading files gives you one document at a time, and grep finds words, not connec
|
|
|
182
186
|
bf read project:new-website
|
|
183
187
|
```
|
|
184
188
|
|
|
185
|
-
The reply holds the project note and its backlinks, grouped by relation: four records from four tools
|
|
186
|
-
|
|
187
|
-
```json
|
|
188
|
-
{
|
|
189
|
-
"relation": "project",
|
|
190
|
-
"total": 4,
|
|
191
|
-
"items": [
|
|
192
|
-
{ "ref": "gcloud:deployment", "fields": { "kind": "deployment", "status": "healthy" } },
|
|
193
|
-
{ "ref": "github:implementation", "fields": { "kind": "pull-request", "status": "merged" } },
|
|
194
|
-
{ "ref": "jira:review", "fields": { "kind": "issue", "status": "In review" } },
|
|
195
|
-
{ "ref": "workspace:brief", "fields": { "kind": "brief", "status": "approved" } }
|
|
196
|
-
]
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
From there, follow typed [relations](https://fmind.github.io/brain-framework/docs/links/#name-a-relation) such as `author`, `owner`, `depends-on` or your own. Each claim keeps the note section or record that asserted it, so an answer can always cite its evidence. `bf export` prints the whole graph as JSON Lines for DuckDB or networkx.
|
|
189
|
+
The reply holds the project note and its backlinks, grouped by relation: under `project`, four records from four tools side by side in the shared vocabulary, the Jira review `In review`, the GitHub pull request `merged`, the Gcloud deployment `healthy` and the Workspace brief `approved`. The [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/#collect-four-tools) shows the reply. From there, follow typed [relations](https://fmind.github.io/brain-framework/docs/links/#name-a-relation) such as `author`, `owner`, `depends-on` or your own. Each claim keeps the note section or record that asserted it, so an answer can always cite its evidence. `bf export` prints the whole graph as JSON Lines for DuckDB or networkx.
|
|
201
190
|
|
|
202
191
|
### Act, then learn
|
|
203
192
|
|
|
@@ -211,64 +200,22 @@ Retrieval assembles the context; people and agents do the work, through the CLIs
|
|
|
211
200
|
>
|
|
212
201
|
</a>
|
|
213
202
|
|
|
214
|
-
The graph keeps conclusions current. Each project knows the evidence it links to: when a linked record changes after the note's last edit, `bf read` flags the project for review and names the record to read first, so a decision does not silently outlive its linked evidence. Try it in the [four-tool
|
|
203
|
+
The graph keeps conclusions current. Each project knows the evidence it links to: when a linked record changes after the note's last edit, `bf read` flags the project for review and names the record to read first, so a decision does not silently outlive its linked evidence. Try it in the [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/#follow-a-change). [Routines](https://fmind.github.io/brain-framework/docs/routines/) run deterministic reviews and checks, such as a weekly review action or `bf validate` before each Git commit, and retrieval cases in `evals/` confirm that the questions you rely on still find their evidence as the brain grows.
|
|
215
204
|
|
|
216
205
|
## Try it
|
|
217
206
|
|
|
218
|
-
|
|
207
|
+
You need Linux or macOS and [uv](https://docs.astral.sh/uv/getting-started/installation/), which installs the tested Python 3.14 if needed ([install details](https://fmind.github.io/brain-framework/docs/upgrades/#install)). No model or provider account is required.
|
|
219
208
|
|
|
220
209
|
```bash
|
|
221
210
|
uv tool install --python 3.14 brain-framework
|
|
222
211
|
bf --version
|
|
223
212
|
```
|
|
224
213
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
bf init ~/brain
|
|
229
|
-
cd ~/brain
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
Create `projects/new-website.md` in your editor, or ask your agent to save this fictional decision. Use today's date for `updated`:
|
|
233
|
-
|
|
234
|
-
```markdown
|
|
235
|
-
---
|
|
236
|
-
type: project
|
|
237
|
-
status: draft
|
|
238
|
-
updated: 2026-09-27
|
|
239
|
-
summary: Launch a product website that helps visitors understand the product.
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
# New website
|
|
243
|
-
|
|
244
|
-
## Decision
|
|
245
|
-
|
|
246
|
-
Start with a single product page because visitors need a clear explanation before signing up.
|
|
247
|
-
|
|
248
|
-
## Next actions
|
|
249
|
-
|
|
250
|
-
- [ ] Draft the product page.
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
Find the reason, read its source and check the brain:
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
bf search "visitors clear explanation"
|
|
257
|
-
bf read projects/new-website.md#decision
|
|
258
|
-
bf validate
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
Search returns this match in `items` (other fields omitted):
|
|
262
|
-
|
|
263
|
-
```json
|
|
264
|
-
{ "ref": "projects/new-website.md#decision", "title": "New website — Decision" }
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
`read` returns the original Decision section with its note's status and date, and validation reports `"valid":true`. Edit the note and search again: BF notices changes on its own. The [getting-started guide](https://fmind.github.io/brain-framework/docs/getting-started/) continues with a first collected source and a link from the decision to its evidence, and the [four-tool demo](https://fmind.github.io/brain-framework/docs/context-hub/) runs the whole loop offline on fictional Workspace, Jira, GitHub and Gcloud records.
|
|
214
|
+
Then follow [Getting started](https://fmind.github.io/brain-framework/docs/getting-started/): create a brain, save a decision, find its reason and link it to a first collected source. The [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/) then runs the whole loop offline on fictional Workspace, Jira, GitHub and Gcloud records.
|
|
268
215
|
|
|
269
216
|
## Open your agent in your brain
|
|
270
217
|
|
|
271
|
-
Use the same brain with [Claude Code](https://code.claude.com/docs/en/overview), [Codex](https://openai.com/codex/), [GitHub Copilot](https://github.com/features/copilot) or any agent host that can run a command.
|
|
218
|
+
Use the same brain with [Claude Code](https://code.claude.com/docs/en/overview), [Codex](https://openai.com/codex/), [GitHub Copilot](https://github.com/features/copilot) or any agent host that can run a command. After Getting started, start your terminal agent in `~/brain` and give it this prompt:
|
|
272
219
|
|
|
273
220
|
> Use the bf CLI. Find why we chose a single product page. Read the source, cite its ref and tell me the project's next action.
|
|
274
221
|
|
|
@@ -285,11 +232,9 @@ Each host reads its own folder: for Claude Code, use `~/.claude/skills` instead.
|
|
|
285
232
|
| `bf-use` | Find evidence, cite it, and keep projects and concepts current. |
|
|
286
233
|
| `bf-action` | Start, resume and hand off a tracked work session: `/bf-action website-review`. |
|
|
287
234
|
| `bf-setup` | Install BF, create a brain, connect the agent and choose sources worth adding. |
|
|
288
|
-
| `bf-maintain` | Run sensors, routines and
|
|
289
|
-
|
|
290
|
-
Working in a code repository instead? The [example session hook](https://github.com/fmind/brain-framework/tree/main/examples/hooks) prints the project that declares the repository, its next task and linked evidence when the session starts. During collection, a usable cached reply carries an “Index refreshing” note. Hosts that prefer tools can call `search` and `read` through [MCP](https://fmind.github.io/brain-framework/docs/mcp/). See the [agent guide](https://fmind.github.io/brain-framework/docs/agents/).
|
|
235
|
+
| `bf-maintain` | Run sensors, routines and assistants, check the brain and upgrade it safely. |
|
|
291
236
|
|
|
292
|
-
|
|
237
|
+
Working in a code repository instead? The [example session hook](https://github.com/fmind/brain-framework/tree/main/examples/hooks) prints the project that declares the repository, its next task and linked evidence when the session starts. During collection, a usable cached reply carries an “Index refreshing” note. Hosts that prefer tools can call `search` and `read` through [MCP](https://fmind.github.io/brain-framework/docs/mcp/). See the [agent guide](https://fmind.github.io/brain-framework/docs/agents/), which also points agents to this documentation as Markdown.
|
|
293
238
|
|
|
294
239
|
## Bring your tools
|
|
295
240
|
|
|
@@ -324,7 +269,7 @@ A brain is a folder, so Git gives it history, rollback, review and conflict reso
|
|
|
324
269
|
|
|
325
270
|
1. **It runs on your computer, not in someone else's cloud.** That is a feature: your agent works where you can watch it, interrupt it and inspect every file it reads or writes, instead of a black box on a remote server. Sensors collect while your machine is on, through `bf watch` or a native schedule.
|
|
326
271
|
1. **It takes some setup.** Each source needs its access: an API key, `gh auth login`, `gws` or `gcloud` authentication, then a sensor you review. Providers ship better CLIs and MCP servers every month, so this keeps getting easier, and the `bf-setup` skill walks your agent through it.
|
|
327
|
-
1. **It needs an agent harness for the reasoning.** BF never runs a model itself: it collects, validates, searches and connects, and its [
|
|
272
|
+
1. **It needs an agent harness for the reasoning.** BF never runs a model itself: it collects, validates, searches and connects, and its [assistants](https://fmind.github.io/brain-framework/docs/prompts/) launch your harness. Claude Code, Codex, Copilot, Antigravity or another harness does the thinking, so the privacy of what your agent reads depends on that harness's data terms. BF sends no telemetry or personal data to us; see [privacy and security](https://fmind.github.io/brain-framework/docs/privacy/) for a fully local setup.
|
|
328
273
|
1. **It finds what was said and linked, not what was meant.** Search matches words and explicit identities, without embeddings, and incomplete results say so. Search and read never contact providers: collect again when you need newer evidence. See [what BF does not do](https://fmind.github.io/brain-framework/docs/concepts/#what-bf-does-not-do).
|
|
329
274
|
|
|
330
275
|
[Browse the commands](https://fmind.github.io/brain-framework/docs/commands/) · [Report an issue](https://github.com/fmind/brain-framework/issues) · [Contribute](https://github.com/fmind/brain-framework/blob/main/CONTRIBUTING.md) · [MIT licensed](https://github.com/fmind/brain-framework/blob/main/LICENSE) · [Third-party notices](https://github.com/fmind/brain-framework/blob/main/THIRD_PARTY_NOTICES.md)
|
|
@@ -15,12 +15,12 @@ A second brain for you, your team and your AI agents, on your own computer. Gath
|
|
|
15
15
|
|
|
16
16
|
[](https://github.com/fmind/brain-framework/actions/workflows/ci.yml) [](https://pypi.org/project/brain-framework/) [](https://pypi.org/project/brain-framework/) [](https://github.com/fmind/brain-framework/blob/main/LICENSE)
|
|
17
17
|
|
|
18
|
-
[Why](https://github.com/fmind/brain-framework#why-a-second-brain) · [How it works](https://github.com/fmind/brain-framework#how-it-works) · [Try it](https://github.com/fmind/brain-framework#try-it) · [Agents](https://github.com/fmind/brain-framework#open-your-agent-in-your-brain) · [Good to know](https://github.com/fmind/brain-framework#good-to-know) · [Four-tool
|
|
18
|
+
[Why](https://github.com/fmind/brain-framework#why-a-second-brain) · [How it works](https://github.com/fmind/brain-framework#how-it-works) · [Try it](https://github.com/fmind/brain-framework#try-it) · [Agents](https://github.com/fmind/brain-framework#open-your-agent-in-your-brain) · [Good to know](https://github.com/fmind/brain-framework#good-to-know) · [Four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/) · [Documentation](https://fmind.github.io/brain-framework/)
|
|
19
19
|
|
|
20
20
|
<a href="https://raw.githubusercontent.com/fmind/brain-framework/main/docs/assets/brain-loop.svg">
|
|
21
21
|
<img
|
|
22
22
|
src="https://raw.githubusercontent.com/fmind/brain-framework/main/docs/assets/brain-loop.svg"
|
|
23
|
-
alt="The Brain Framework loop: sensors gather evidence from your tools into a brain folder; bf.yaml declares the ontology, sensors, routines and watch; memories, projects, concepts and actions form a knowledge graph; agents read that context, act through the same CLIs, APIs, MCP servers and browsers, and write outcomes back."
|
|
23
|
+
alt="The Brain Framework loop: sensors gather evidence from your tools into a brain folder; bf.yaml declares the ontology, sensors, routines, assistants, channels and watch settings; memories, projects, concepts and actions form a knowledge graph; agents read that context, act through the same CLIs, APIs, MCP servers and browsers, and write outcomes back."
|
|
24
24
|
width="960"
|
|
25
25
|
>
|
|
26
26
|
</a>
|
|
@@ -56,7 +56,7 @@ Questions that once took a tour of your tools become one prompt, once you write
|
|
|
56
56
|
- **Every source, even the ones no product connects.** Mail, calendar, documents, chat, issues and pull requests, of course. But also the release notes and security advisories of the tools you depend on, model retirement dates, provider incidents, mentions of your projects on Hacker News or Bluesky, your domains' certificates and mail security, repository traffic that GitHub forgets after 14 days and your past agent sessions. If you can script it, you can collect it.
|
|
57
57
|
- **Unlimited integrations, both ways.** A sensor is a small program that prints JSON: wrap a CLI such as `gh`, `gws` or `gcloud`, call an API, drive a browser, query a database or parse an export. The same CLIs, APIs and MCP servers then let your agent act on what it learned: draft the issue, answer the thread, fix the alert.
|
|
58
58
|
- **One vocabulary, one knowledge graph.** Each tool names things its own way. You declare a small ontology in `bf.yaml` and sensors map provider fields into it at collection, so the same project, person or repository connects across every tool. BF turns those explicit links into a graph you navigate in one read, each claim pointing back to its evidence.
|
|
59
|
-
- **Private by design.** Your brain is a folder on your disk. BF has no account, server or telemetry and never runs a model itself: [
|
|
59
|
+
- **Private by design.** Your brain is a folder on your disk. BF has no account, server or telemetry and never runs a model itself: [assistants](https://fmind.github.io/brain-framework/docs/prompts/) launch your agent harness. Search and read work offline.
|
|
60
60
|
- **Portable and versioned.** Markdown notes, JSON records and scripts: open them in any editor, grep them, copy them to another machine. Keep the brain in a private Git repository for history, rollback, review and conflict resolution.
|
|
61
61
|
- **For you or your whole team.** A personal brain stays on your laptop. A team brain is a private Git repository with one clone per teammate, so decisions, reviewed evidence and next steps are shared by everyone and their agents. Your personal brain can include the team's in its searches.
|
|
62
62
|
- **Any agent, guided by skills.** Claude Code, Codex, GitHub Copilot, Antigravity or your own agent reach the same brain through the `bf` command, packaged skills or MCP. The skills teach them to find evidence, keep notes current, connect sources and maintain the brain.
|
|
@@ -67,7 +67,7 @@ Hosted personal agents run on someone else's computer, connect the sources their
|
|
|
67
67
|
|
|
68
68
|
### What one brain can gather
|
|
69
69
|
|
|
70
|
-
The author's own brain runs more than
|
|
70
|
+
The author's own brain runs more than 80 sensors and holds about 50,000 records (counted on 2026-10-16):
|
|
71
71
|
|
|
72
72
|
| Area | Collected evidence |
|
|
73
73
|
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -76,7 +76,7 @@ The author's own brain runs more than 50 sensors and holds over 60,000 records (
|
|
|
76
76
|
| Agents | Claude Code, Codex, Copilot and other agent sessions and memories, so a past conclusion is one search away. |
|
|
77
77
|
| Your stack | Release notes, security bulletins and advisories of the tools you use, model retirements and provider outages. |
|
|
78
78
|
| Your presence | Mentions on GitHub, Hacker News and Bluesky; domain expiry, mail security and certificate transparency; site and repository traffic. |
|
|
79
|
-
| Reading | RSS feeds, newsletters, bookmarks
|
|
79
|
+
| Reading | RSS feeds, newsletters, bookmarks and Hacker News. |
|
|
80
80
|
|
|
81
81
|
These are personal sensors, not bundled connectors. The repository ships [reviewed starting points](https://github.com/fmind/brain-framework#bring-your-tools), and the `bf-setup` skill helps your agent connect a new source.
|
|
82
82
|
|
|
@@ -94,10 +94,11 @@ A brain gives your work the structure of a detective's case file, in plain files
|
|
|
94
94
|
| `concepts/` | Knowledge you will reuse elsewhere, with its evidence and limits. | “Explain the product before asking for signup.” |
|
|
95
95
|
| `actions/` | One work session: objective, inputs, outputs, outcome and next step. | `actions/2026-09-27_website-review/ACTION.md`, resumed the next day. |
|
|
96
96
|
| `routines/` | Deterministic programs you review, run on demand, on a schedule or from Git. | A weekly review that drafts an action listing projects to revisit. |
|
|
97
|
-
| `prompts/` | Markdown prompts your agent harness runs
|
|
97
|
+
| `prompts/` | Markdown prompts your agent harness runs; each run's reply is a record. | An assistant that reviews new mail and chat every half hour. |
|
|
98
|
+
| `channels/` | Scripts you review that send, read or stream messages for assistants. | A script that posts an assistant's answer in your chat thread. |
|
|
98
99
|
| `evals/` | Saved questions with the evidence that search or read must return. | “Why one page?” must return the project's Decision section. |
|
|
99
100
|
|
|
100
|
-
Notes are Markdown with YAML metadata, records are JSON, and `bf validate` checks both. The SQLite search cache in `.bf/` is disposable and rebuilds itself from the files. See the [file conventions](https://fmind.github.io/brain-framework/docs/brain/#directory-reference).
|
|
101
|
+
Notes are Markdown with YAML metadata, records are JSON, and `bf validate` checks both. `bf init --full` creates `sensors/` and `routines/`; create `prompts/` and `channels/` when you add an [assistant](https://fmind.github.io/brain-framework/docs/prompts/). An assistant's records hold model output, so search weighs them at half, like a low-priority source. The SQLite search cache in `.bf/` is disposable and rebuilds itself from the files. See the [file conventions](https://fmind.github.io/brain-framework/docs/brain/#directory-reference).
|
|
101
102
|
|
|
102
103
|
### `bf.yaml`, the coordination hub
|
|
103
104
|
|
|
@@ -105,7 +106,7 @@ One file declares what the brain knows how to name, collect and check:
|
|
|
105
106
|
|
|
106
107
|
```yaml
|
|
107
108
|
# https://fmind.github.io/brain-framework/docs/configuration/
|
|
108
|
-
version:
|
|
109
|
+
version: 8
|
|
109
110
|
name: brain
|
|
110
111
|
fields: # the ontology: shared fields and typed relations
|
|
111
112
|
project: { type: identity, cardinality: one, relation: true, description: Project the source names. }
|
|
@@ -130,7 +131,9 @@ watch: # keep sources fresh and alert on failure
|
|
|
130
131
|
notifications: failure
|
|
131
132
|
```
|
|
132
133
|
|
|
133
|
-
BF runs each program with its configured arguments and no shell, bounds its time and output, validates what it prints and keeps its stderr in `logs/`. A failed run
|
|
134
|
+
BF runs each program with its configured arguments and no shell, bounds its time and output, validates what it prints and keeps its stderr in `logs/`. A failed sensor run preserves its evidence; assistant answers and delivery obligations have durable recovery. `bf watch` keeps due sensors, routines and assistants fresh in a terminal dashboard, and `bf schedule` generates native systemd, launchd or cron jobs for you to install. See [sensors](https://fmind.github.io/brain-framework/docs/sensors/), [routines](https://fmind.github.io/brain-framework/docs/routines/) and [watch and schedule](https://fmind.github.io/brain-framework/docs/schedule/).
|
|
135
|
+
|
|
136
|
+
[Assistants and channels](https://fmind.github.io/brain-framework/docs/prompts/) connect your own harness to any messaging surface through small scripts: receive messages, reply in their thread, review on a schedule and fan out saved answers. The [offline messaging example](https://github.com/fmind/brain-framework/tree/main/examples/channels) demonstrates the full loop without a provider or model.
|
|
134
137
|
|
|
135
138
|
### One vocabulary, set at collection
|
|
136
139
|
|
|
@@ -154,22 +157,7 @@ Reading files gives you one document at a time, and grep finds words, not connec
|
|
|
154
157
|
bf read project:new-website
|
|
155
158
|
```
|
|
156
159
|
|
|
157
|
-
The reply holds the project note and its backlinks, grouped by relation: four records from four tools
|
|
158
|
-
|
|
159
|
-
```json
|
|
160
|
-
{
|
|
161
|
-
"relation": "project",
|
|
162
|
-
"total": 4,
|
|
163
|
-
"items": [
|
|
164
|
-
{ "ref": "gcloud:deployment", "fields": { "kind": "deployment", "status": "healthy" } },
|
|
165
|
-
{ "ref": "github:implementation", "fields": { "kind": "pull-request", "status": "merged" } },
|
|
166
|
-
{ "ref": "jira:review", "fields": { "kind": "issue", "status": "In review" } },
|
|
167
|
-
{ "ref": "workspace:brief", "fields": { "kind": "brief", "status": "approved" } }
|
|
168
|
-
]
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
From there, follow typed [relations](https://fmind.github.io/brain-framework/docs/links/#name-a-relation) such as `author`, `owner`, `depends-on` or your own. Each claim keeps the note section or record that asserted it, so an answer can always cite its evidence. `bf export` prints the whole graph as JSON Lines for DuckDB or networkx.
|
|
160
|
+
The reply holds the project note and its backlinks, grouped by relation: under `project`, four records from four tools side by side in the shared vocabulary, the Jira review `In review`, the GitHub pull request `merged`, the Gcloud deployment `healthy` and the Workspace brief `approved`. The [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/#collect-four-tools) shows the reply. From there, follow typed [relations](https://fmind.github.io/brain-framework/docs/links/#name-a-relation) such as `author`, `owner`, `depends-on` or your own. Each claim keeps the note section or record that asserted it, so an answer can always cite its evidence. `bf export` prints the whole graph as JSON Lines for DuckDB or networkx.
|
|
173
161
|
|
|
174
162
|
### Act, then learn
|
|
175
163
|
|
|
@@ -183,64 +171,22 @@ Retrieval assembles the context; people and agents do the work, through the CLIs
|
|
|
183
171
|
>
|
|
184
172
|
</a>
|
|
185
173
|
|
|
186
|
-
The graph keeps conclusions current. Each project knows the evidence it links to: when a linked record changes after the note's last edit, `bf read` flags the project for review and names the record to read first, so a decision does not silently outlive its linked evidence. Try it in the [four-tool
|
|
174
|
+
The graph keeps conclusions current. Each project knows the evidence it links to: when a linked record changes after the note's last edit, `bf read` flags the project for review and names the record to read first, so a decision does not silently outlive its linked evidence. Try it in the [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/#follow-a-change). [Routines](https://fmind.github.io/brain-framework/docs/routines/) run deterministic reviews and checks, such as a weekly review action or `bf validate` before each Git commit, and retrieval cases in `evals/` confirm that the questions you rely on still find their evidence as the brain grows.
|
|
187
175
|
|
|
188
176
|
## Try it
|
|
189
177
|
|
|
190
|
-
|
|
178
|
+
You need Linux or macOS and [uv](https://docs.astral.sh/uv/getting-started/installation/), which installs the tested Python 3.14 if needed ([install details](https://fmind.github.io/brain-framework/docs/upgrades/#install)). No model or provider account is required.
|
|
191
179
|
|
|
192
180
|
```bash
|
|
193
181
|
uv tool install --python 3.14 brain-framework
|
|
194
182
|
bf --version
|
|
195
183
|
```
|
|
196
184
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
bf init ~/brain
|
|
201
|
-
cd ~/brain
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Create `projects/new-website.md` in your editor, or ask your agent to save this fictional decision. Use today's date for `updated`:
|
|
205
|
-
|
|
206
|
-
```markdown
|
|
207
|
-
---
|
|
208
|
-
type: project
|
|
209
|
-
status: draft
|
|
210
|
-
updated: 2026-09-27
|
|
211
|
-
summary: Launch a product website that helps visitors understand the product.
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
# New website
|
|
215
|
-
|
|
216
|
-
## Decision
|
|
217
|
-
|
|
218
|
-
Start with a single product page because visitors need a clear explanation before signing up.
|
|
219
|
-
|
|
220
|
-
## Next actions
|
|
221
|
-
|
|
222
|
-
- [ ] Draft the product page.
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Find the reason, read its source and check the brain:
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
bf search "visitors clear explanation"
|
|
229
|
-
bf read projects/new-website.md#decision
|
|
230
|
-
bf validate
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Search returns this match in `items` (other fields omitted):
|
|
234
|
-
|
|
235
|
-
```json
|
|
236
|
-
{ "ref": "projects/new-website.md#decision", "title": "New website — Decision" }
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
`read` returns the original Decision section with its note's status and date, and validation reports `"valid":true`. Edit the note and search again: BF notices changes on its own. The [getting-started guide](https://fmind.github.io/brain-framework/docs/getting-started/) continues with a first collected source and a link from the decision to its evidence, and the [four-tool demo](https://fmind.github.io/brain-framework/docs/context-hub/) runs the whole loop offline on fictional Workspace, Jira, GitHub and Gcloud records.
|
|
185
|
+
Then follow [Getting started](https://fmind.github.io/brain-framework/docs/getting-started/): create a brain, save a decision, find its reason and link it to a first collected source. The [four-tool walkthrough](https://fmind.github.io/brain-framework/docs/context-hub/) then runs the whole loop offline on fictional Workspace, Jira, GitHub and Gcloud records.
|
|
240
186
|
|
|
241
187
|
## Open your agent in your brain
|
|
242
188
|
|
|
243
|
-
Use the same brain with [Claude Code](https://code.claude.com/docs/en/overview), [Codex](https://openai.com/codex/), [GitHub Copilot](https://github.com/features/copilot) or any agent host that can run a command.
|
|
189
|
+
Use the same brain with [Claude Code](https://code.claude.com/docs/en/overview), [Codex](https://openai.com/codex/), [GitHub Copilot](https://github.com/features/copilot) or any agent host that can run a command. After Getting started, start your terminal agent in `~/brain` and give it this prompt:
|
|
244
190
|
|
|
245
191
|
> Use the bf CLI. Find why we chose a single product page. Read the source, cite its ref and tell me the project's next action.
|
|
246
192
|
|
|
@@ -257,11 +203,9 @@ Each host reads its own folder: for Claude Code, use `~/.claude/skills` instead.
|
|
|
257
203
|
| `bf-use` | Find evidence, cite it, and keep projects and concepts current. |
|
|
258
204
|
| `bf-action` | Start, resume and hand off a tracked work session: `/bf-action website-review`. |
|
|
259
205
|
| `bf-setup` | Install BF, create a brain, connect the agent and choose sources worth adding. |
|
|
260
|
-
| `bf-maintain` | Run sensors, routines and
|
|
261
|
-
|
|
262
|
-
Working in a code repository instead? The [example session hook](https://github.com/fmind/brain-framework/tree/main/examples/hooks) prints the project that declares the repository, its next task and linked evidence when the session starts. During collection, a usable cached reply carries an “Index refreshing” note. Hosts that prefer tools can call `search` and `read` through [MCP](https://fmind.github.io/brain-framework/docs/mcp/). See the [agent guide](https://fmind.github.io/brain-framework/docs/agents/).
|
|
206
|
+
| `bf-maintain` | Run sensors, routines and assistants, check the brain and upgrade it safely. |
|
|
263
207
|
|
|
264
|
-
|
|
208
|
+
Working in a code repository instead? The [example session hook](https://github.com/fmind/brain-framework/tree/main/examples/hooks) prints the project that declares the repository, its next task and linked evidence when the session starts. During collection, a usable cached reply carries an “Index refreshing” note. Hosts that prefer tools can call `search` and `read` through [MCP](https://fmind.github.io/brain-framework/docs/mcp/). See the [agent guide](https://fmind.github.io/brain-framework/docs/agents/), which also points agents to this documentation as Markdown.
|
|
265
209
|
|
|
266
210
|
## Bring your tools
|
|
267
211
|
|
|
@@ -296,7 +240,7 @@ A brain is a folder, so Git gives it history, rollback, review and conflict reso
|
|
|
296
240
|
|
|
297
241
|
1. **It runs on your computer, not in someone else's cloud.** That is a feature: your agent works where you can watch it, interrupt it and inspect every file it reads or writes, instead of a black box on a remote server. Sensors collect while your machine is on, through `bf watch` or a native schedule.
|
|
298
242
|
1. **It takes some setup.** Each source needs its access: an API key, `gh auth login`, `gws` or `gcloud` authentication, then a sensor you review. Providers ship better CLIs and MCP servers every month, so this keeps getting easier, and the `bf-setup` skill walks your agent through it.
|
|
299
|
-
1. **It needs an agent harness for the reasoning.** BF never runs a model itself: it collects, validates, searches and connects, and its [
|
|
243
|
+
1. **It needs an agent harness for the reasoning.** BF never runs a model itself: it collects, validates, searches and connects, and its [assistants](https://fmind.github.io/brain-framework/docs/prompts/) launch your harness. Claude Code, Codex, Copilot, Antigravity or another harness does the thinking, so the privacy of what your agent reads depends on that harness's data terms. BF sends no telemetry or personal data to us; see [privacy and security](https://fmind.github.io/brain-framework/docs/privacy/) for a fully local setup.
|
|
300
244
|
1. **It finds what was said and linked, not what was meant.** Search matches words and explicit identities, without embeddings, and incomplete results say so. Search and read never contact providers: collect again when you need newer evidence. See [what BF does not do](https://fmind.github.io/brain-framework/docs/concepts/#what-bf-does-not-do).
|
|
301
245
|
|
|
302
246
|
[Browse the commands](https://fmind.github.io/brain-framework/docs/commands/) · [Report an issue](https://github.com/fmind/brain-framework/issues) · [Contribute](https://github.com/fmind/brain-framework/blob/main/CONTRIBUTING.md) · [MIT licensed](https://github.com/fmind/brain-framework/blob/main/LICENSE) · [Third-party notices](https://github.com/fmind/brain-framework/blob/main/THIRD_PARTY_NOTICES.md)
|
|
@@ -745,15 +745,15 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
|
745
745
|
OTHER DEALINGS IN THE SOFTWARE.
|
|
746
746
|
```
|
|
747
747
|
|
|
748
|
-
## mcp 2.
|
|
748
|
+
## mcp 2.3.0
|
|
749
749
|
|
|
750
750
|
Source: <https://github.com/modelcontextprotocol/python-sdk>
|
|
751
751
|
|
|
752
752
|
License: `MIT`
|
|
753
753
|
|
|
754
|
-
Evidence: `mcp-2.
|
|
754
|
+
Evidence: `mcp-2.3.0.dist-info/licenses/LICENSE`
|
|
755
755
|
|
|
756
|
-
### mcp-2.
|
|
756
|
+
### mcp-2.3.0.dist-info/licenses/LICENSE
|
|
757
757
|
|
|
758
758
|
```text
|
|
759
759
|
MIT License
|
|
@@ -779,15 +779,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
779
779
|
SOFTWARE.
|
|
780
780
|
```
|
|
781
781
|
|
|
782
|
-
## mcp-types 2.
|
|
782
|
+
## mcp-types 2.3.0
|
|
783
783
|
|
|
784
784
|
Source: <https://github.com/modelcontextprotocol/python-sdk>
|
|
785
785
|
|
|
786
786
|
License: `MIT`
|
|
787
787
|
|
|
788
|
-
Evidence: `mcp_types-2.
|
|
788
|
+
Evidence: `mcp_types-2.3.0.dist-info/licenses/LICENSE`
|
|
789
789
|
|
|
790
|
-
### mcp_types-2.
|
|
790
|
+
### mcp_types-2.3.0.dist-info/licenses/LICENSE
|
|
791
791
|
|
|
792
792
|
```text
|
|
793
793
|
MIT License
|
|
@@ -872,15 +872,15 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
|
872
872
|
IN THE SOFTWARE.
|
|
873
873
|
```
|
|
874
874
|
|
|
875
|
-
## opentelemetry-api 1.45.
|
|
875
|
+
## opentelemetry-api 1.45.1
|
|
876
876
|
|
|
877
877
|
Source: <https://github.com/open-telemetry/opentelemetry-python>
|
|
878
878
|
|
|
879
879
|
License: `Apache-2.0`
|
|
880
880
|
|
|
881
|
-
Evidence: `opentelemetry_api-1.45.
|
|
881
|
+
Evidence: `opentelemetry_api-1.45.1.dist-info/licenses/LICENSE`
|
|
882
882
|
|
|
883
|
-
### opentelemetry_api-1.45.
|
|
883
|
+
### opentelemetry_api-1.45.1.dist-info/licenses/LICENSE
|
|
884
884
|
|
|
885
885
|
```text
|
|
886
886
|
Apache License
|
|
@@ -1086,20 +1086,20 @@ Evidence: `opentelemetry_api-1.45.0.dist-info/licenses/LICENSE`
|
|
|
1086
1086
|
limitations under the License.
|
|
1087
1087
|
```
|
|
1088
1088
|
|
|
1089
|
-
## pycparser 3.
|
|
1089
|
+
## pycparser 3.11
|
|
1090
1090
|
|
|
1091
1091
|
Source: <https://github.com/eliben/pycparser>
|
|
1092
1092
|
|
|
1093
1093
|
License: `BSD-3-Clause`
|
|
1094
1094
|
|
|
1095
|
-
Evidence: `pycparser-3.
|
|
1095
|
+
Evidence: `pycparser-3.11.dist-info/licenses/LICENSE`
|
|
1096
1096
|
|
|
1097
|
-
### pycparser-3.
|
|
1097
|
+
### pycparser-3.11.dist-info/licenses/LICENSE
|
|
1098
1098
|
|
|
1099
1099
|
```text
|
|
1100
1100
|
pycparser -- A C parser in Python
|
|
1101
1101
|
|
|
1102
|
-
Copyright (c) 2008-
|
|
1102
|
+
Copyright (c) 2008-2027, Eli Bendersky
|
|
1103
1103
|
All rights reserved.
|
|
1104
1104
|
|
|
1105
1105
|
Redistribution and use in source and binary forms, with or without modification,
|
|
@@ -1126,15 +1126,15 @@ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
|
1126
1126
|
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1127
1127
|
```
|
|
1128
1128
|
|
|
1129
|
-
## pydantic 2.
|
|
1129
|
+
## pydantic 2.14.1
|
|
1130
1130
|
|
|
1131
1131
|
Source: <https://github.com/pydantic/pydantic>
|
|
1132
1132
|
|
|
1133
1133
|
License: `MIT`
|
|
1134
1134
|
|
|
1135
|
-
Evidence: `pydantic-2.
|
|
1135
|
+
Evidence: `pydantic-2.14.1.dist-info/licenses/LICENSE`
|
|
1136
1136
|
|
|
1137
|
-
### pydantic-2.
|
|
1137
|
+
### pydantic-2.14.1.dist-info/licenses/LICENSE
|
|
1138
1138
|
|
|
1139
1139
|
```text
|
|
1140
1140
|
The MIT License (MIT)
|
|
@@ -1160,15 +1160,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
1160
1160
|
SOFTWARE.
|
|
1161
1161
|
```
|
|
1162
1162
|
|
|
1163
|
-
## pydantic-core 2.
|
|
1163
|
+
## pydantic-core 2.50.1
|
|
1164
1164
|
|
|
1165
1165
|
Source: <https://github.com/pydantic/pydantic/tree/main/pydantic-core>
|
|
1166
1166
|
|
|
1167
1167
|
License: `MIT`
|
|
1168
1168
|
|
|
1169
|
-
Evidence: `pydantic_core-2.
|
|
1169
|
+
Evidence: `pydantic_core-2.50.1.dist-info/licenses/LICENSE`
|
|
1170
1170
|
|
|
1171
|
-
### pydantic_core-2.
|
|
1171
|
+
### pydantic_core-2.50.1.dist-info/licenses/LICENSE
|
|
1172
1172
|
|
|
1173
1173
|
```text
|
|
1174
1174
|
The MIT License (MIT)
|
|
@@ -1577,15 +1577,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
1577
1577
|
SOFTWARE.
|
|
1578
1578
|
```
|
|
1579
1579
|
|
|
1580
|
-
## rpds-py 2026.
|
|
1580
|
+
## rpds-py 2026.9.1
|
|
1581
1581
|
|
|
1582
1582
|
Source: <https://github.com/crate-py/rpds>
|
|
1583
1583
|
|
|
1584
1584
|
License: `MIT`
|
|
1585
1585
|
|
|
1586
|
-
Evidence: `rpds_py-2026.
|
|
1586
|
+
Evidence: `rpds_py-2026.9.1.dist-info/licenses/LICENSE`
|
|
1587
1587
|
|
|
1588
|
-
### rpds_py-2026.
|
|
1588
|
+
### rpds_py-2026.9.1.dist-info/licenses/LICENSE
|
|
1589
1589
|
|
|
1590
1590
|
```text
|
|
1591
1591
|
Copyright (c) 2023 Julian Berman
|
|
@@ -1675,15 +1675,15 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
1675
1675
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1676
1676
|
```
|
|
1677
1677
|
|
|
1678
|
-
## starlette 1.
|
|
1678
|
+
## starlette 1.8.0
|
|
1679
1679
|
|
|
1680
1680
|
Source: <https://github.com/Kludex/starlette>
|
|
1681
1681
|
|
|
1682
1682
|
License: `BSD-3-Clause`
|
|
1683
1683
|
|
|
1684
|
-
Evidence: `starlette-1.
|
|
1684
|
+
Evidence: `starlette-1.8.0.dist-info/licenses/LICENSE.md`
|
|
1685
1685
|
|
|
1686
|
-
### starlette-1.
|
|
1686
|
+
### starlette-1.8.0.dist-info/licenses/LICENSE.md
|
|
1687
1687
|
|
|
1688
1688
|
```text
|
|
1689
1689
|
Copyright © 2018, [Encode OSS Ltd](https://www.encode.io/).
|
|
@@ -1715,15 +1715,15 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
1715
1715
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1716
1716
|
```
|
|
1717
1717
|
|
|
1718
|
-
## truststore 0.10.
|
|
1718
|
+
## truststore 0.10.5
|
|
1719
1719
|
|
|
1720
1720
|
Source: <https://github.com/sethmlarson/truststore>
|
|
1721
1721
|
|
|
1722
1722
|
License: `MIT`
|
|
1723
1723
|
|
|
1724
|
-
Evidence: `truststore-0.10.
|
|
1724
|
+
Evidence: `truststore-0.10.5.dist-info/licenses/LICENSE`
|
|
1725
1725
|
|
|
1726
|
-
### truststore-0.10.
|
|
1726
|
+
### truststore-0.10.5.dist-info/licenses/LICENSE
|
|
1727
1727
|
|
|
1728
1728
|
```text
|
|
1729
1729
|
The MIT License (MIT)
|
|
@@ -1749,7 +1749,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
1749
1749
|
THE SOFTWARE.
|
|
1750
1750
|
```
|
|
1751
1751
|
|
|
1752
|
-
## typer 0.27.
|
|
1752
|
+
## typer 0.27.3
|
|
1753
1753
|
|
|
1754
1754
|
Source: <https://github.com/fastapi/typer>
|
|
1755
1755
|
|
|
@@ -1757,9 +1757,9 @@ License: `MIT`
|
|
|
1757
1757
|
|
|
1758
1758
|
The distribution vendors code adapted from Click in `typer/_click/`; its bundled `BSD-3-Clause` license is included below.
|
|
1759
1759
|
|
|
1760
|
-
Evidence: `typer-0.27.
|
|
1760
|
+
Evidence: `typer-0.27.3.dist-info/licenses/LICENSE`
|
|
1761
1761
|
|
|
1762
|
-
### typer-0.27.
|
|
1762
|
+
### typer-0.27.3.dist-info/licenses/LICENSE
|
|
1763
1763
|
|
|
1764
1764
|
```text
|
|
1765
1765
|
The MIT License (MIT)
|