Files are pages. Tools stay with you.
SillPak is a local-first routed artifact workspace. Every directory or file is an Astro route, the active URL is the selected artifact, and the artifact page can expand from inspection into the main work surface. A persistent terminal remains available while routes change, so external CLI agents and ordinary shells can work without pulling in an entire IDE.
SillPak works independently and exposes optional adapters for external context, control, execution, and evidence systems.
The current public boundary is intentionally mechanical. SillPak owns artifact routing, workspace containment, persistent terminal sessions, native file actions, bounded text saves, shallow observations, and the honest presentation of host capabilities. It does not own semantic intent, agent orchestration, durable truth, business policy, or logical retry decisions.
- Astro 7 catch-all routes map one concrete local workspace into
/w/local/.... - LiteShip owns adaptive shell projection without React.
- Astro
ClientRouterpreserves the terminal and explicit-context shelf across artifact navigation. - xterm.js renders the terminal; node-pty runs in an Electron utility process.
- Renderer loss detaches from a PTY session instead of killing it. Reopening the same session reattaches and replays bounded output.
- Local artifact routes and APIs require an HttpOnly session cookie or the host bearer token.
- Exact Host validation, mutation Origin checks, path containment, stale-write refusal, and sandboxed renderers are structural laws.
- Markdown supports formatted preview, lazy Lexical rich editing, and lazy CodeMirror source editing.
- Code and text use CodeMirror; DOCX, PDF, spreadsheets, images, audio, and video use format-specific projections.
- Voice transcription is lazy, local-first, and never auto-executes terminal input.
- Browser sessions and general external-agent browser mechanics are specified but not implemented. The design uses an attached Electron session first, an optional disposable worker later, accessibility as a first-class action source, and WebMCP as an optional untrusted page-tool capability.
- Astro: route identity, history, route data, and artifact-page replacement.
- LiteShip: adaptive shell states, capability-aware projection, CSS and ARIA agreement, live non-route regions, and opaque specialist boundaries.
- Authenticated local HTTP: artifact reads, projections, directory data, and bounded saves.
- Electron IPC: terminal control, workspace selection, native file actions, and future browser-session control.
- Specialist engines: terminal, editor, PDF, document, spreadsheet, media, and speech internals.
The split is deliberate. HTTP makes desktop and hosted artifact pages share one web-native model. IPC retains native authority behind a narrow, sender-validated bridge.
apps/shellis the Astro and LiteShip application.apps/desktopis the Electron host, local Astro runtime, workspace registry, file watcher, preload bridge, and PTY utility process.packages/contractsis the closed public vocabulary shared by the browser and desktop layers.packages/qualitycontains downstream Gauntlet gates and audits.docscontains product, architecture, security, dependency, browser, execution, and handoff material.docs/AGENT-BROWSER.mdis the normative agent-browser implementation contract.docs/adrcontains accepted architecture decisions.examples/workspaceis a disposable dogfood root.
- Install Node 22.13 or later and pnpm 10.
- Run
pnpm install. - Set
SILLPAK_WORKSPACE_ROOTto a directory you are comfortable exposing. - Run
pnpm dev. - Run
pnpm checkbefore committing.
The source-level QA lanes are green in the generation environment. Dependency installation, vendor-integrated type checking, Electron launch, native-module rebuilds, packaged permissions, and cross-platform smoke tests remain the next checkpoint. See docs/checkpoint/CURRENT.md.
SillPak is not a built-in agent runtime, a full IDE, a universal resource graph, a durable event store, a generic orchestration platform, or a custom terminal-emulator research project.
The local observation layer remains deliberately shallow. File changes may be associated with a command window, but are never declared causal without stronger evidence.
An implementation agent should read, in order:
CANON.mdAGENTS.mddocs/checkpoint/CURRENT.mddocs/ARCHITECTURE.mddocs/SECURITY.mddocs/PLAN.mddocs/HANDOFF.md
Browser implementation work additionally reads docs/AGENT-BROWSER.md and docs/adr/0010-agent-browser-backends-and-webmcp.md.