diff --git a/website/index.html b/website/index.html
index 87e0cb4..1fa8d5c 100644
--- a/website/index.html
+++ b/website/index.html
@@ -56,47 +56,47 @@
How it works
-
1. Create
-
-
$ brain init --name "My Team"
+
1. Start
+
+
+
$ brain init --name "Acme Engineering"
-β
Brain "My Team" is ready!
+β
Brain "Acme Engineering" is ready!
+
+
+
$ brain connect https://github.com/acme/brain-hub.git
-
2. Import
-
-
$ brain ingest https://github.com/acme/docs.git
-
-β
Ingested 24 entries from acme/docs
- π‘ 8% stale. Run 'brain prune --dry-run' to review.
-
-
-
-
-
3. Share
-
+
2. Add knowledge
+
+
$ brain push ./guide.md
β
Pushed: Docker Multi-Stage Builds
Tags: docker (auto-detected)
+
+
+
$ brain ingest https://github.com/acme/docs.git
+
+β
Ingested 24 entries from acme/docs
-
4. Discover
+
3. Discover
$ brain search "kubernetes"
Found 3 results:
-+------------------------+--------+-------+-----------+
-| Title | Author | Type | Tags |
-+------------------------+--------+-------+-----------+
-| K8s Deployment Guide | bob | guide | k8s |
-| CI Pipeline | carol | guide | ci, k8s |
-| Helm Chart Patterns | alice | skill | helm, k8s |
-+------------------------+--------+-------+-----------+
+ββββββββββββββββββββββββββ¬βββββββββ¬ββββββββ¬ββββββββββββ
+β Title β Author β Type β Tags β
+ββββββββββββββββββββββββββΌβββββββββΌββββββββΌββββββββββββ€
+β K8s Deployment Guide β bob β guide β k8s β
+β CI Pipeline β carol β guide β ci, k8s β
+β Helm Chart Patterns β alice β skill β helm, k8s β
+ββββββββββββββββββββββββββ΄βββββββββ΄ββββββββ΄ββββββββββββ
@@ -115,39 +115,18 @@ Git as storage
FTS5 search
-
SQLite FTS5 with BM25 ranking, prefix matching, and contextual snippets. Sub-millisecond search. Works offline.
-
-
-
MCP server
-
10 tools and 2 resources exposed via Model Context Protocol. AI agents can search, read, edit, and publish entries. brain serve starts the server.
-
-
-
Repo ingest
-
Seed your brain from existing repos. brain ingest <url> scans for markdown, auto-detects titles and tags, and scores freshness at import.
-
-
-
Freshness scoring
-
Entries scored as Fresh, Aging, or Stale based on recency and read frequency. brain prune archives what's stale. brain restore brings it back.
-
-
-
Knowledge trails
-
Auto-computed links between entries. brain trail <topic> follows connections across your team's knowledge.
-
-
-
Interactive search
-
Search results are numbered. Pick one to read it inline. brain search "kubernetes" then select. Records a read receipt.
-
-
-
Works with Obsidian
-
Every brain is an Obsidian vault. Open it for graph view, backlinks, and visual editing. Wikilink footers connect related entries.
+
SQLite FTS5 with BM25 ranking, prefix matching, and contextual snippets. Sub-millisecond queries. Works offline. Index rebuilt from source on every sync.
-
21 commands
-
push, search, list, show, digest, edit, open, ingest, prune, restore, trail, status, and more. All support --format json.
+
MCP-native
+
10 tools and 2 resources via Model Context Protocol. Your AI agent can search, read, edit, and publish entries. brain serve starts the server.
+ Also: repo ingest Β· freshness scoring Β· knowledge trails Β· Obsidian vault Β· 20 commands
+
+ Zero infrastructure. One command to start.
brain connect https://github.com/acme/brain-hub.git
@@ -205,26 +184,21 @@ Quick start
Under the hood
-
-
brain push / brain search / brain digest
-
-
CLI
-
-
-
- Git repo
- storage
-
-
- SQLite FTS5
- search
-
-
- Receipts
- analytics
-
-
-
+
+ brain push / brain search / brain digest
+ β
+ ββββββββΌβββββββ
+ β CLI β
+ ββββββββ¬βββββββ
+ β
+ ββββββββββββββββββΌβββββββββββββββββ
+ βΌ βΌ βΌ
+ ββββββββββββ ββββββββββββββ ββββββββββββ
+ β Git repo β β SQLite β β Receipts β
+ β (storage)β β FTS5 β β (analyticsβ
+ β β β (search) β β β
+ ββββββββββββ ββββββββββββββ ββββββββββββ
+
@@ -248,10 +222,11 @@
Under the hood
diff --git a/website/style.css b/website/style.css
index 05e88d5..571f811 100644
--- a/website/style.css
+++ b/website/style.css
@@ -350,6 +350,14 @@ a:focus-visible {
margin-right: 0;
}
+.section-also {
+ text-align: center;
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 0.85rem;
+ color: var(--text-muted);
+ margin: 0 auto 2rem;
+}
+
.section-punch {
text-align: center;
color: var(--text-secondary);
@@ -416,73 +424,17 @@ a:focus-visible {
}
/* Architecture */
-.arch-diagram {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 0;
- max-width: 600px;
- margin: 0 auto 2rem;
-}
-
-.arch-label {
- font-family: 'JetBrains Mono', monospace;
- font-size: 0.85rem;
- color: var(--text-muted);
- margin-bottom: 0.5rem;
-}
-
-.arch-arrow-down {
- width: 2px;
- height: 24px;
- background: var(--border);
- position: relative;
-}
-
-.arch-arrow-down::after {
- content: '';
- position: absolute;
- bottom: 0;
- left: 50%;
- transform: translateX(-50%);
- border-left: 5px solid transparent;
- border-right: 5px solid transparent;
- border-top: 6px solid var(--border);
-}
-
-.arch-box {
+.arch-pre {
font-family: 'JetBrains Mono', monospace;
font-size: 0.8rem;
- border: 1px solid var(--border);
- border-radius: 6px;
- padding: 0.75rem 1.25rem;
- text-align: center;
- background: var(--bg-secondary, #141414);
- display: flex;
- flex-direction: column;
- gap: 0.2rem;
-}
-
-.arch-box--accent {
- border-color: var(--accent);
- color: var(--accent);
- font-weight: 600;
-}
-
-.arch-box .arch-sub {
- font-size: 0.7rem;
- color: var(--text-muted);
-}
-
-.arch-row {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 1rem;
- width: 100%;
- margin-top: 0.5rem;
+ line-height: 1.4;
+ color: var(--text-primary);
+ max-width: 600px;
+ margin: 0 auto 2rem;
+ overflow-x: auto;
}
-.arch-accent {
+.arch-pre .arch-accent {
color: var(--accent);
}
@@ -577,12 +529,9 @@ a:focus-visible {
grid-template-columns: 1fr;
}
- .arch-row {
- grid-template-columns: 1fr;
- }
-
- .arch-diagram {
- padding: 0 1rem;
+ .arch-pre {
+ font-size: 0.7rem;
+ overflow-x: auto;
}
.terminal {
diff --git a/website/terminal.js b/website/terminal.js
index 829c57f..c008bca 100644
--- a/website/terminal.js
+++ b/website/terminal.js
@@ -19,13 +19,13 @@
command: 'brain search "kubernetes"',
output:
'Found 3 results:\n' +
- '+------------------------+--------+-------+-----------+\n' +
- '| Title | Author | Type | Tags |\n' +
- '+------------------------+--------+-------+-----------+\n' +
- '| K8s Deployment Guide | bob | guide | k8s |\n' +
- '| CI Pipeline | carol | guide | ci, k8s |\n' +
- '| Helm Chart Patterns | alice | skill | helm, k8s |\n' +
- '+------------------------+--------+-------+-----------+',
+ 'ββββββββββββββββββββββββββ¬βββββββββ¬ββββββββ¬ββββββββββββ\n' +
+ 'β Title β Author β Type β Tags β\n' +
+ 'ββββββββββββββββββββββββββΌβββββββββΌββββββββΌββββββββββββ€\n' +
+ 'β K8s Deployment Guide β bob β guide β k8s β\n' +
+ 'β CI Pipeline β carol β guide β ci, k8s β\n' +
+ 'β Helm Chart Patterns β alice β skill β helm, k8s β\n' +
+ 'ββββββββββββββββββββββββββ΄βββββββββ΄ββββββββ΄ββββββββββββ',
pauseAfter: 2500,
},
{
@@ -69,7 +69,7 @@
html +=
'
$ ' +
escapeHtml(step.command) +
- '
' +
+ '
' +
escapeHtml(step.output) +
'
';
if (i < DEMO_SEQUENCE.length - 1) html += '
';