V
vitofico/galley
AI-native, local-first, model-agnostic document workspace built on Typst, a compile-feedback agent loop with a human Accept gate
SECURITY.md ✓
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
We have neither an install command nor a public remote endpoint from this repository, so we do not print a config. A made-up one is worse than none. How each client wires MCP up →
- Star count
- 3 ★ · vitofico/galley · read from the GitHub search API · (checked 2026-11-13 20:00:50)
- Source
- collected from the punkpeye/awesome-mcp-servers list · type: MCP server
- Harvest history
- first seen 2026-10-23 · last seen 2026-11-14 · seen 26× · listed by 23 sources
- Score
- score 2,300 · 3 ★ · 23 sources · mcp
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository
vitofico/galley;first catalogued 2026-10-23;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.An open-source, local-first , model-agnostic ,
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
AI-native document workspace built on
Typst .
▶ Try the live demo —
no signup, no API key. Everything runs in your browser. It's meant for the
built-in offline Demo agent — don't enter a real API key or GitHub token there.
A galley proof is the preliminary typeset version you check and correct before
final layout — which is exactly this app's core loop: compile → inspect →
correct → repeat.
Galley is, conceptually, "AI-enhanced ShareLaTeX, but Typst instead of LaTeX, open source,
and not locked to one vendor's cloud or model." The differentiation is three
bets a cloud-only, single-vendor product structurally cannot make:
1. Agentic, not autocomplete. Typst compiles in milliseconds and emits
structured, machine-readable diagnostics. That makes a tight
edit → compile → read errors → self-correct loop cheap. That loop is the
product.
2. Local-first. The Typst compiler runs in the browser via WASM
(typst.ts). Your document and
your compile stay on your machine. Server-side compile is an optional
enhancement, never a dependency. (See the honest local-first
definition — remote model
endpoints still receive your document.)
3. Bring-your-own-model. A provider abstraction runs the agent against any
OpenAI-compatible endpoint, Anthropic, or a local Ollama. Model choice is
config, never a fork.
## Status
Galley works end-to-end in the browser today: a CodeMirror editor with a live
SVG preview (typst.ts compiling in a Web Worker) and the human-in-the-loop
agent loop — request → self-correct → diff → Accept/Reject → re-render.
Bring your own model (any OpenAI-compatible endpoint, Anthropic, or a local
Ollama) or use the built-in offline Demo agent. Real-time collaboration is
opt-in — one-click Share upgrades a project to Yjs CRDT co-editing with the
agent as a peer, presence, and per-author attribution (ADRs
0005–0012). Multi-file projects and templates, named versions
with visual compare, broad import/export (Markdown, LaTeX, Overleaf .zip,
Zotero/.bib in; PDF/PNG out), and opt-in MCP access behind an explicit
consent gate round it out. Self-host with Docker compose or Kubernetes; the
whole test suite (typecheck + unit + Playwright e2e) runs in Docker. See
the CHANGELOG for the full feature inventory and the
roadmap for what's next.
### Default product & routes
Galley uses path-based routes (a tiny History-API router):
/ — the Projects page, the landing surface (create / open / import projects).
/p/ — a specific local-first project (auto-saved to the browser, reload-survivable).
/library — the project dashboard.
/join/ — share-link entry (joins a collaboration room; carries ?sync= / ?role=).
/settings — device-scoped settings.
Collaboration is an explicit Share action, never on by default. The only
editor-on-home hatch is ?seed=… (the seeded Einstein showcase, also the e2e entry).
## The core loop
User request
Agent proposes edits (search/replace blocks)
Apply to a SCRATCH copy ──► compile ──► read diagnostics
│ │
│ ◄── errors? revise (up to MAXITERS) ─┘
Clean compile → present a reviewable diff
User clicks Accept ──► apply to live document
or Reject ──► discard scratch
In the editor loop the human is always in control — the in-app agent never
Typst .
▶ Try the live demo —
no signup, no API key. Everything runs in your browser. It's meant for the
built-in offline Demo agent — don't enter a real API key or GitHub token there.
A galley proof is the preliminary typeset version you check and correct before
final layout — which is exactly this app's core loop: compile → inspect →
correct → repeat.
Galley is, conceptually, "AI-enhanced ShareLaTeX, but Typst instead of LaTeX, open source,
and not locked to one vendor's cloud or model." The differentiation is three
bets a cloud-only, single-vendor product structurally cannot make:
1. Agentic, not autocomplete. Typst compiles in milliseconds and emits
structured, machine-readable diagnostics. That makes a tight
edit → compile → read errors → self-correct loop cheap. That loop is the
product.
2. Local-first. The Typst compiler runs in the browser via WASM
(typst.ts). Your document and
your compile stay on your machine. Server-side compile is an optional
enhancement, never a dependency. (See the honest local-first
definition — remote model
endpoints still receive your document.)
3. Bring-your-own-model. A provider abstraction runs the agent against any
OpenAI-compatible endpoint, Anthropic, or a local Ollama. Model choice is
config, never a fork.
## Status
Galley works end-to-end in the browser today: a CodeMirror editor with a live
SVG preview (typst.ts compiling in a Web Worker) and the human-in-the-loop
agent loop — request → self-correct → diff → Accept/Reject → re-render.
Bring your own model (any OpenAI-compatible endpoint, Anthropic, or a local
Ollama) or use the built-in offline Demo agent. Real-time collaboration is
opt-in — one-click Share upgrades a project to Yjs CRDT co-editing with the
agent as a peer, presence, and per-author attribution (ADRs
0005–0012). Multi-file projects and templates, named versions
with visual compare, broad import/export (Markdown, LaTeX, Overleaf .zip,
Zotero/.bib in; PDF/PNG out), and opt-in MCP access behind an explicit
consent gate round it out. Self-host with Docker compose or Kubernetes; the
whole test suite (typecheck + unit + Playwright e2e) runs in Docker. See
the CHANGELOG for the full feature inventory and the
roadmap for what's next.
### Default product & routes
Galley uses path-based routes (a tiny History-API router):
/ — the Projects page, the landing surface (create / open / import projects).
/p/ — a specific local-first project (auto-saved to the browser, reload-survivable).
/library — the project dashboard.
/join/ — share-link entry (joins a collaboration room; carries ?sync= / ?role=).
/settings — device-scoped settings.
Collaboration is an explicit Share action, never on by default. The only
editor-on-home hatch is ?seed=… (the seeded Einstein showcase, also the e2e entry).
## The core loop
User request
Agent proposes edits (search/replace blocks)
Apply to a SCRATCH copy ──► compile ──► read diagnostics
│ │
│ ◄── errors? revise (up to MAXITERS) ─┘
Clean compile → present a reviewable diff
User clicks Accept ──► apply to live document
or Reject ──► discard scratch
In the editor loop the human is always in control — the in-app agent never
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[](https://anclum.com/en/s/vitofico-galley-blob-main-docs-mcp-md/)
- Source
- awesome · https://github.com/vitofico/galley/blob/main/docs/mcp.md
- Browse by field
- MCP servers
- Traction
- 3 ★
- Listed by
- 23 independent sources
- added
- today
- Security policy
- the repository has
SECURITY.mdat its root (we checked that the file exists, not what it says)
More like this
Filed under
Every tag opens the full list for that filter. Counts are the live catalogue figures.