Splay Workspaces
Keep parallel coding tasks organized with isolated Git worktrees and persistent terminals.
- Source repo
- splay-sh/splay
- Stars
- ★ 116
- Last updated
- 23d ago
- License
- MIT
- Primary language
- Rust
- FA score
- 44/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- Linux developers running coding agents on separate features or bug fixes can give each task its own worktree.
- Not a fit if
- Users who need to run on macOS or Windows
- Teams that need a built-in editor, browser, or review workflow
- Source review
- 44/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
Splay is a Linux workspace manager for parallel coding, with a GTK 4 desktop app and the splayctl command-line tool. After registering Git repositories, you can create a separate Git worktree for each feature or fix so parallel tasks do not share a checkout or branch. Each workspace hosts persistent terminal sessions for Claude Code, Codex, OpenCode, a shell, or another command-line program. Sessions use libghostty-vt and can be detached and reattached through the GUI or CLI. Splay suits Linux developers who want one place to manage repositories, workspaces, and sessions; it does not bundle an editor, browser, or review workflow.
Use the Splay desktop app or splayctl to manage Git repositories; create isolated worktrees for tasks, or clone a workspace into a new worktree and branch; start persistent terminal sessions inside workspaces and run shell commands or coding-agent CLIs; detach from and reattach to sessions; and remove workspaces after work is merged. Splay manages Git workspaces and terminal sessions rather than editing code or handling reviews.
- Linux developers running coding agents on separate features or bug fixes can give each task its own worktree.
- Developers managing several GitHub repositories can organize their repositories, workspaces, and sessions in one desktop app.
- A contributor branching off an existing workspace can create a new worktree and branch with the workspace cloning feature.
- Developers who need to leave a running agent and return later can detach from a persistent session and reattach.
- Engineers who already have a preferred terminal toolchain can run a shell or any command-line tool in an isolated workspace.
How do you install or deploy this agent?
Install the latest release with the installation script. Splay targets Linux x86-64 and requires glibc 2.39 or newer and GTK 4. The script puts splay and splayctl in ~/.local/bin and adds Splay to the app launcher.
curl -fsSL https://splay.sh/install.sh | shBuilding from source also requires GTK 4 development headers and Zig 0.15.2. On Ubuntu/Debian, install the system packages below, then install Zig and make sure zig is on PATH:
sudo apt install gcc g++ libcairo2-dev libglib2.0-dev libgtk-4-dev libpango1.0-dev pkg-configcargo install --path .How do you use this agent?
Start the GTK desktop app:
splayView the command-line tool's help:
splayctl --helpRegister a Git repository in Splay, create a workspace for a feature or bug fix, then start a terminal session in it and run a coding agent or another shell command. Sessions can be detached and reattached from the GUI or CLI.
What are this agent's strengths and limitations?
- Each workspace is an isolated Git worktree, so parallel agents do not share a checkout or branch.
- The project provides both a GTK 4 desktop interface and the splayctl command-line interface.
- Terminals backed by libghostty-vt support detaching and reattaching, and can run any shell command.
- Multiple GitHub repositories, workspaces, and sessions can be managed in one place.
- The release targets Linux x86-64 and requires glibc 2.39 or newer and GTK 4.
- Source builds require GTK 4 development dependencies and Zig 0.15.2.
- Its scope is Git worktrees and terminal sessions; there is no built-in editor, browser, or review workflow.
- The README does not specify whether installation or use requires network access, or document the full parameters for each CLI operation.
How does this agent compare with similar options?
Splay sits alongside Superset, cmux, Conductor, and Orca. The README describes Splay as focused on Git worktree management and terminal sessions; Superset adds a diff viewer and editor, cmux a browser, Conductor a review workflow, and Orca an editor and browser. The README lists Splay for Linux, built with GTK 4, under the MIT license.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Splay Workspaces This agent | 44 · Major gaps | Desktop appFree | ★ 116 | 23d ago | Rust | Codex · Claude Code |
| Ateam Agent Workbench | 70 · Some gaps | Desktop appFree + model costs | ★ 15 | today | TypeScript | Codex · Claude Code |
| Yardsort | 70 · Some gaps | Desktop appFree | ★ 13 | today | Rust | Codex · Claude Code |
| dmux | 69 · Some gaps | CLIFree + model costs | ★ 1.8k | 2mo ago | HTML | Codex · Claude Code · OpenAI API |
How does FollowAgents rate this agent?
Why each dimension lost points
The README says workspaces use isolated git worktrees and can be removed when finished, giving limited evidence of isolation and cleanup (least_privilege=1, rollback=1). However, Splay runs arbitrary shell commands inside workspaces, and the supplied files show no permission limits or command confirmation mechanism (least_privilege=1, user_confirmation=1). The install command pipes curl into sh, while data flows and sensitive-data handling are not explained (data_flow_transparency=1, sensitive_data_handling=0, external_effects=1). Cargo.toml lists dependencies, but the supplied material shows no dependency security policy or clear source attribution, so these scores remain thin (dependency_security=1, source_attribution=1).
The README, Cargo.toml, and workflow are broadly consistent about Linux, GTK 4, Rust dependencies, and the Zig version requirement (self_consistency=2). The PR workflow specifies build and test steps, but the supplied evidence gives no availability guarantees or failure-message handling; this static review does not assess execution results (dependency_availability=1, failure_messages=0).
The README identifies parallel coding-agent work as its audience and describes GUI, CLI, multi-repository, and general shell-session use cases (audience_and_scenarios=2). It defines worktrees and terminal sessions as the core scope and notes that it omits features such as an editor, but does not detail the boundaries of “any shell tool” or when the product should be used (capability_boundaries=2, trigger_precision=1). Linux x86-64, glibc, GTK, and build requirements are stated (environment_fit=2).
The README organizes features, installation, getting started, motivation, FAQ, building, and a manual link; it includes a CLI example and Swarm migration guidance (information_architecture=2, install_notes=2, examples_and_faq=2). The Splay/Swarm rename and version 0.2.0 are visible, but the supplied material has no changelog (naming_stability=2, versioning_changelog=1). Linux and system requirements are documented, while other limitations and maintenance responsibility are not adequately covered (known_limitations=1, maintenance_responsibility=1). The full MIT license is supplied, justifying full marks (license=3).
Splay centralizes repositories, worktrees, and persistent terminal sessions, with both GUI and CLI access, which has clear value for parallel-agent work (output_usability=2, marginal_value=2). The source does not quantify operating costs, resource use, or benefits, and the Linux/GTK requirement adds setup constraints, so cost-benefit evidence is thin (cost_benefit=1).
README claims about installation, platform, and features can be checked against some dependency and build settings in Cargo.toml and the workflow, but most product behavior is described only in the README (claim_traceability=2, cross_source_corroboration=1). The README presents feature and requirement claims without clearly marking inference; the evidence supports only a thin score (fact_inference_separation=1).
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- The install method downloads and executes a remote script; review its contents before running it.
- The tool runs arbitrary terminal commands in workspaces; the supplied material does not describe additional command confirmation or sensitive-data protections.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
v0.2.0 0.2.0 - 2026-10-12
Release notes excerpt
Release Notes Swarm is now Splay. The binaries are splay and splayctl, and existing state moves over automatically on first start. Added - Collapse or expand all repositories with one sidebar toggle. ([#71](https://github.com/splay-sh/splay/pull/71)) - Name the workspace in the empty terminal placeholder. ([#71](https://github.com/splay-sh/splay/pull/71)) Changed - Rename the project from Swarm to Splay. The binaries are now splay and splayctl, and the GTK application ID is com.penberg.splay.ui. …View on GitHub ↗ -
Release notes excerpt
Install swarm 0.1.6 Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/penberg/swarm/releases/download/v0.1.6/swarm-installer.sh | sh ``` Download swarm 0.1.6 | File | Platform | Checksum | |--------|----------|----------| | [swarm-x86_64-unknown-linux-gnu.tar.xz](https://github.com/penberg/swarm/releases/download/v0.1.6/swarm-x86_64-unknown-linux-gnu.tar.xz) | x64 Linux | [checksum](https://github.com/penberg/swarm/releases/download/v0.1.6/swarm-x86_64-unknown-linux-gnu.tar.xz.sha256) |View on GitHub ↗ -
v0.1.5 0.1.5 - 2026-04-22
Release notes excerpt
Release Notes Added - Agent CI Docker image manifest. ([#62](https://github.com/penberg/swarm/pull/62)) Changed - Refactor session toolchain setup. ([#60](https://github.com/penberg/swarm/pull/60)) Fixed - Prevent UI terminal hangs under heavy logging. ([#63](https://github.com/penberg/swarm/pull/63)) - Recover terminal after socket disconnect. ([#64](https://github.com/penberg/swarm/pull/64)) Install swarm 0.1.5 Install prebuilt binaries via shell script ```sh …View on GitHub ↗