https://github.com/silo-code/silo
Silo — a terminal-first, extensible code editor. Run many workspaces at once and switch instantly without losing state.
https://github.com/silo-code/silo
claude-code codex editor gemini opencode terminal
Last synced: about 5 hours ago
JSON representation
Silo — a terminal-first, extensible code editor. Run many workspaces at once and switch instantly without losing state.
- Host: GitHub
- URL: https://github.com/silo-code/silo
- Owner: silo-code
- License: mit
- Created: 2026-06-09T17:47:55.000Z (16 days ago)
- Default Branch: main
- Last Pushed: 2026-06-24T15:08:01.000Z (1 day ago)
- Last Synced: 2026-06-24T16:23:17.922Z (1 day ago)
- Topics: claude-code, codex, editor, gemini, opencode, terminal
- Language: TypeScript
- Homepage: https://getsilo.dev
- Size: 6.45 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Terminal-first workspace manager —
built for the multi-agent workflow
Switch between your projects like browser tabs —
except each tab is a full workspace with live terminals, running agents, and preserved layout.
[**Download for macOS →**](https://github.com/silo-code/silo/releases/latest) · [**Download for Linux →**](https://github.com/silo-code/silo/releases/latest) · [Docs](https://getsilo.dev) · [Roadmap](https://getsilo.dev/roadmap)
   ![Platform: Windows (experimental)]() 
---

---
## The problem with one-workspace-at-a-time editors
VS Code and Cursor are file-first editors. They're built around a single active workspace — which made sense when _you_ were writing the code.
Now you're coordinating 3–5 AI coding agents simultaneously across different projects. Every time you switch context, you lose your terminal state. Your agents get interrupted. You spend more time rebuilding context than doing actual work.
**Silo is built around the opposite model.**
Open as many project workspaces as you need and tab between them instantly. Each workspace keeps its terminals running, its layout intact, and its agents working — exactly as you left it. Switching takes a keystroke, not a minute.
## How it works
- **Workspace tabs** — each project gets its own persistent tab; switch instantly without losing anything
- **Live backgrounds** — terminals keep running, agents keep working, layout stays put when you switch away
- **Terminal-first** — shells and coding agents are the primary surface; file editing is secondary
- **Extension SDK** — a small stable core with a public API; first-party features ship as extensions (modeled on VS Code / Obsidian)
- **Local-first** — everything runs on your machine; no cloud required
## Extend Silo with Claude Code
Silo ships a Claude Code skill that turns a plain-English description into a working extension — scaffolded from scratch, written in TypeScript, compiled, and hot-installed into the running app. No SDK knowledge required. Just describe what you want.
**Step 1 — install the skill once:**
```bash
mkdir -p ~/.claude/skills/silo-extension-builder && \
curl -fsSL -o ~/.claude/skills/silo-extension-builder/SKILL.md \
https://raw.githubusercontent.com/silo-code/silo/main/skills/silo-extension-builder/SKILL.md
```
**Step 2 — describe what you want:**
```
/silo-extension-builder Create a status bar item that shows the current git branch
and a dot when there are uncommitted changes.
```
Claude scaffolds the project, writes the TypeScript, compiles it, and installs it — all without leaving your terminal. The result is a real extension you own: edit the source, rebuild with `npm run build`, reinstall with `silo install`.
**Things people have built this way in a single session:**
- **Git branch status bar** — branch name + dirty indicator, updates on workspace switch
- **GitHub Issues panel** — lists open issues for the active repo via `gh`, with a refresh button
- **Scratch pad** — persisted notes panel that survives restarts
- **Todo manager** — reads and writes `TODO.md` in the active workspace, with checkboxes and inline add
Extensions install and uninstall live — no restart needed:
```bash
silo install ~/my-extensions/dave.git-branch
silo uninstall dave.git-branch
```
→ [Full guide](https://getsilo.dev/guide/claude-skill) · [Extension API](https://getsilo.dev/api/)
## Who it's for
- You run Claude Code, Aider, or other AI coding agents and want to keep several going at once
- You work across multiple projects simultaneously and hate losing terminal state when switching
- You live in the terminal more than the editor
- You've hit the ceiling of what a single-workspace editor can do for your workflow
## vs. VS Code / Cursor
| | VS Code / Cursor | Silo |
| ------------------------ | ------------------------------------ | ----------------------------------------- |
| **Switching projects** | Reopens folder, loses terminal state | Instant tab switch — everything preserved |
| **Multiple agents** | One active workspace at a time | Many workspaces, all live simultaneously |
| **Primary surface** | File editor | Terminal + agents |
| **Background terminals** | Die or disconnect | Stay running |
| **Extensible** | Yes | Yes — open SDK, MIT licensed |
## Download
**macOS** (v0.4.0):
| Build | Link |
| ------------------------ | --------------------------------------------------------------------------- |
| Apple Silicon (M1/M2/M3) | [Silo_0.4.0_aarch64.dmg](https://github.com/silo-code/silo/releases/latest) |
| Intel Mac | [Silo_0.4.0_x64.dmg](https://github.com/silo-code/silo/releases/latest) |
**Linux** (v0.4.0):
| Build | Link |
| ------------- | ----------------------------------------------------------------------- |
| AppImage | [Download .AppImage](https://github.com/silo-code/silo/releases/latest) |
| Debian/Ubuntu | [Download .deb](https://github.com/silo-code/silo/releases/latest) |
**Windows** — experimental builds are attached to every [GitHub Release](https://github.com/silo-code/silo/releases) and may not work correctly. If you try it, please [open an issue](https://github.com/silo-code/silo/issues) with what you find.
---
## Develop
Silo is a [pnpm](https://pnpm.io/) workspace (monorepo). Run commands from the repo root.
```bash
pnpm install
pnpm dev # runs the "Silo Dev" build (isolated identity + data)
```
`pnpm dev` launches a separate **Silo Dev** app with its own icon and storage,
so it runs side-by-side with an installed stable Silo without clobbering its
state.
| Task | Command |
| --------------------------------- | -------------------------------------- |
| Dev app (isolated identity) | `pnpm dev` |
| Build a release bundle | `pnpm --filter silo app:build` |
| Typecheck | `pnpm --filter silo exec tsc --noEmit` |
| Lint (architecture boundary gate) | `pnpm lint` |
| Test | `pnpm test` |
| Docs site (live) | `pnpm docs:dev` |
### Repo layout
```
apps/desktop # the Tauri desktop app (+ src-tauri Rust crate)
packages/sdk # @silo-code/sdk — the public, types-first extension SDK
packages/extension-host # the workbench host runtime (+ /internal surface)
packages/extensions-core / extensions-silo # bundled first-party extensions
packages/ui # internal shared components (private)
examples/extensions # example extensions that dogfood the SDK
apps/docs # @silo-code/docs — docs + API reference site (VitePress)
```
## Releases
Releases are driven by [Conventional Commits](https://www.conventionalcommits.org/).
On every push to `main`, [release-please](.github/workflows/release-please.yml)
maintains a "release vX.Y.Z" PR that bumps the version everywhere and updates
`CHANGELOG.md`. Merging that PR tags `silo-vX.Y.Z`, which triggers the
[release workflow](.github/workflows/release.yml) to build macOS installers and
publish them to GitHub Releases. The installed app checks for updates on launch
and via **Silo → Check for Updates…**.
## Architecture
- Extensions touch the app **only** through `ctx` and `@silo-code/sdk` types. The boundary is enforced by the package graph and lint (platform ban + design-token CSS rule). See [`CLAUDE.md`](CLAUDE.md) and [`docs/`](docs/).
- The API reference is generated from source: `pnpm docs:api` → [getsilo.dev](https://getsilo.dev/)
## License
[MIT](LICENSE) © Dave Weaver