Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Spool

Share, read, and continue agent sessions.

Spool turns work done with coding agents into durable web pages that other people can understand and resume. An author shares a real Session—not a screenshot or reconstructed recap—and readers can move from Summary to conversation, tool activity, files, and diff before continuing the work in their own agent.

Early stage. Claude Code and Codex CLI shares are Public by default and can appear in Explore and search. Gemini CLI, OpenCode, and Pi shares remain Link-only until Discovery supports them. Signed-in authors can move a Session into a Team, making it Team-only for current members, or let Team Owners and Admins publish the Team-owned asset more broadly. Native Resume currently works for Claude Code and Codex CLI. Feedback is welcome through Issues or Discord.

Install the CLI

curl -fsSL https://spool.new/install.sh | sh

Install once, open a new terminal, then use spool from any project.

Share a Session

cd /path/to/project
spool

Bare spool refreshes the local index, signs in through the browser if needed, and selects the latest Session in the current project. It then shows what will be shared, scans for sensitive values, confirms the resulting visibility, publishes the records to the Hub, and returns a durable URL.

Use the explicit form when you want to choose a Session or pass sharing options:

spool share <session-uuid>

A reader can open that URL without installing Spool. Claude Code and Codex CLI shares can also be continued locally:

spool resume <session-url>

Resume creates a new provider-native Session and preserves its relationship to the source. The shared source is never modified.

Product Model

  • Share is the explicit action that sends selected Session records to the Hub and returns a durable URL.
  • Publish is the default result for supported Claude Code and Codex CLI Shares: a Public Session that can appear on the author’s Profile, in Explore, and in search.
  • Project is the required personal or Team-owned namespace that groups related Sessions without storing source code. A Team Project keeps Team ownership whether a Session is Team-only, Link-only, or Public.
  • Team is a role-based workspace. Publishing into one of its Projects transfers control of the hosted asset to the Team; Team · name limits reading to current members, while Team Owners and Admins can change disclosure.
  • Read moves from Summary to conversation, tools, files, and net diff.
  • Resume / Fork creates new agent-native work with visible lineage.
  • Withdraw makes the current hosted copy return 410 Gone. A personal author can later explicitly Share the same Session again; a Team-owned withdrawal by an Owner/Admin is permanent and cannot be revived by another member.

Nothing leaves the machine until the author confirms the Share flow started by spool or spool share. The confirmation states both the Project owner and initial visibility before upload: supported Claude Code and Codex CLI Sessions are Public by default; other providers remain Link-only. spool share --project paperboy/spool --public publishes under a Team-owned Project while keeping the Session Public; omitting --public from a Team Project fails closed to Team-only.

What Spool Includes

  • Session sharing — publish Claude Code and Codex CLI Sessions publicly by default, with Link-only fallback for Gemini CLI, OpenCode, and Pi
  • Readable Session pages — Summary, conversation, tool activity, touched files, diff, and record deep links
  • Native continuation — materialize Claude Code and Codex CLI shares locally and continue them in their original agent format
  • Sensitive-data checks — detect likely credentials, tokens, personal data, and local paths before sharing
  • Local preparation — collect and organize Claude Code, Codex CLI, Gemini CLI, OpenCode, and Pi Sessions before deciding what to share
  • Agent access — use the bundled Spool skill or JSON CLI output from any shell-capable agent
  • Public identity and Discovery — author Profiles, Explore/search, Public Sessions, and continuation lineage
  • Team workspaces — Owner, Admin, and Member roles; invitations; member-only Sessions; and explicit disclosure controls

Share Stack

The current Share-focused surfaces are:

apps/
cli/ CLI for indexing, sharing, reading, resuming, and automation
web/ spool.new: homepage, docs, Profiles, account/Team pages, and Session reader
backend/ Hub, identity, Teams, publication, and media API on Cloudflare
packages/
core/ Local Session ingestion, organization, SQLite, and full-text search
redact/ Sensitive-data detection shared by publishing surfaces
session-kit/ Browser-safe Session model, canonical records, views, and diffs
session-view/ Shared conversation renderer for Session pages
share-kit/ Curated `.spool` documents, templates, and export primitives

The original provider Session remains authoritative. Git remains authoritative for code. Spool publishes agent work and its context; it does not replace the project’s source-control system.

Development

pnpm install
pnpm run rebuild:native:node

Run the checks for the Share surfaces with:

pnpm --filter @spool-lab/cli typecheck
pnpm --filter @spool-lab/cli test
pnpm --filter @spool/backend typecheck
pnpm --filter @spool/backend test
pnpm --filter @spool/web typecheck
pnpm --filter @spool/web test
pnpm --filter @spool/web build

Start the backend and Web documentation site in separate terminals:

pnpm --filter @spool/backend dev
pnpm --filter @spool/web dev

License

MIT

Trademark

“Spool” and the Spool logo are trademarks of TypeSafe Limited. The MIT License covers the source code only and does not grant permission to use the Spool name or logo. See LICENSE.