workspaces
Skill11k starsChanged 16 days agoMITView on GitHub
How a Robin workspace's sandbox image works and how to change it — create one, edit or fork an existing one, start from scratch, what setup_script and update_script are for, why a nightly refresh failed, where the build logs are, and how to read a rebuild in progress. Read this whenever someone asks about workspaces, snapshots, sandbox images, or a refresh, whether or not this is an admin thread.
5 other projects use a version of this.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- MosoFin/mosofin-mcp-plugintheir own version, first seen Oct 21, 2026
- MosoFin/mosofin-pluginstheir own version, first seen Oct 21, 2026
- stacksyncdata/skillstheir own version, first seen Oct 20, 2026
- wyattjoh/skillstheir own version, first seen Sep 27, 2026
- coder/skillstheir own version, first seen May 10, 2026
Who's talking about langchain-ai/open-swe
- LangChain“Introducing Open SWE: An Open-Source Asynchronous Coding Agent”YouTube · Aug 6, 2025 · 30k views
- WorldofAI“Open-SWE: Opensource Jules! FULLY FREE Async AI Coder IS INSANELY GOOD!”YouTube · Aug 12, 2025 · 8.5k views
- Codedigipt“Open SWE : Open Source Asynchronous Coding Agent (Auto-Code+Review+PR) | CURSOR Alternative Free”YouTube · Aug 7, 2025 · 2.2k views
- Gourcer“langchain-ai/open-swe - Gource visualisation”YouTube · Mar 19, 2026 · 798 views
- TechWealth Hub“Open SWE Setup Explained: LangChain's Issue to PR Coding Agent”YouTube · Apr 29, 2026 · 390 views
The biggest 5 of 75 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 75
Talked about on GitHub, YouTube, Bluesky, Hacker News and the web (75 times).
On GitHub · 50
- Sep 4, 2025Support for go mod operations against private repositories — copilot-coding-agent/user-feedback5 reactions · 2 comments
- Oct 20, 2026fix(langchain): avoid full-state copies in parallel tool tasks — langchain-ai/langchainjs1 reaction · 1 comment
- Oct 18, 2026fix: confine repository chat writes to wiki docs — langchain-ai/openwiki1 reaction · 1 comment
- Mar 21, 2026feat: Support plugin system in opencli — jackwener/OpenCLI1 reaction · 1 comment
- Mar 19, 2026chore(vendor): add open-swe submodule — pleaseai/agent-please1 reaction · 3 comments
45 more on GitHub
- Mar 18, 2026Implement all development tasks required by ADR for SWE agent integration — abuxton/pheromone1 reaction
- Mar 18, 2026review SWE as ADR for integration — abuxton/pheromone1 reaction
- Oct 12, 2025Integrate open swe — wafflestudio/retrochat1 reaction
- Nov 6, 2026agent-skills.github.langchain-ai.open-swe: c2d9d42 → fa9d147 — sudosubin/agents.nix0 reactions
- Nov 5, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-11-04 → 0-unstable-2026-11-05 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.langchain-ai.open-swe: 0.3.12-unstable-2026-11-04 → 0-unstable-2026-11-04 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.langchain-ai.open-swe: 0.3.12-unstable-2026-11-03 → 0.3.12-unstable-2026-11-04 — sudosubin/agents.nix0 reactions
- Nov 4, 2026agent-skills.github.langchain-ai.open-swe: b59ac4f → 59bdb78 — sudosubin/agents.nix0 reactions
- Nov 3, 2026agent-skills.github.langchain-ai.open-swe: 0.3.11-unstable-2026-11-03 → 0.3.12-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 3, 2026agent-skills.github.langchain-ai.open-swe: 0.3.11-unstable-2026-11-02 → 0.3.11-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 2, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-11-02 → 0.3.11-unstable-2026-11-02 — sudosubin/agents.nix0 reactions
- Nov 2, 2026agent-skills.github.langchain-ai.open-swe: 6f10c9f → 80877db — sudosubin/agents.nix0 reactions
- Nov 2, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-11-01 → 0-unstable-2026-11-02 — sudosubin/agents.nix0 reactions
- Nov 1, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-31 → 0-unstable-2026-11-01 — sudosubin/agents.nix0 reactions
- Oct 31, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-30 → 0-unstable-2026-10-31 — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.langchain-ai.open-swe: 6fb4fab → 1f88969 — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.langchain-ai.open-swe: 638cb5e → 6fb4fab — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-29 → 0-unstable-2026-10-30 — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.langchain-ai.open-swe: 1e55aeb → 93b4ffb — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.langchain-ai.open-swe: e0df828 → 1e55aeb — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.langchain-ai.open-swe: 965f28c → e0df828 — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-28 → 0-unstable-2026-10-29 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-skills.github.langchain-ai.open-swe: 0.3.10-unstable-2026-10-28 → 0-unstable-2026-10-28 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-skills.github.langchain-ai.open-swe: 0.3.10-unstable-2026-10-27 → 0.3.10-unstable-2026-10-28 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-27 → 0.3.10-unstable-2026-10-27 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-26 → 0-unstable-2026-10-27 — sudosubin/agents.nix0 reactions
- Oct 27, 2026agent-skills.github.langchain-ai.open-swe: 918a104 → 6511cff — sudosubin/agents.nix0 reactions
- Oct 26, 2026agent-skills.github.langchain-ai.open-swe: 0.3.9-unstable-2026-10-26 → 0-unstable-2026-10-26 — sudosubin/agents.nix0 reactions
- Oct 26, 2026agent-skills.github.langchain-ai.open-swe: 0.3.9-unstable-2026-10-25 → 0.3.9-unstable-2026-10-26 — sudosubin/agents.nix0 reactions
- Oct 25, 2026agent-skills.github.langchain-ai.open-swe: b508b13 → a37f08a — sudosubin/agents.nix0 reactions
- Oct 25, 2026agent-skills.github.langchain-ai.open-swe: 0.3.9-unstable-2026-10-24 → 0.3.9-unstable-2026-10-25 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.langchain-ai.open-swe: 4cac1c9 → 398e681 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.langchain-ai.open-swe: 0.3.9-unstable-2026-10-23 → 0.3.9-unstable-2026-10-24 — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.langchain-ai.open-swe: 891eed6 → dcb41ea — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.langchain-ai.open-swe: c21ca49 → 891eed6 — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.langchain-ai.open-swe: 0.3.9-unstable-2026-10-22 → 0.3.9-unstable-2026-10-23 — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.langchain-ai.open-swe: 99fc415 → b2eef1a — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-22 → 0.3.9-unstable-2026-10-22 — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-skills.github.langchain-ai.open-swe: 5d85a52 → 99fc415 — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-skills.github.langchain-ai.open-swe: 794eaa7 → 5d85a52 — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-skills.github.langchain-ai.open-swe: 0-unstable-2026-10-21 → 0-unstable-2026-10-22 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.langchain-ai.open-swe: 584e8e2 → 3656d24 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.langchain-ai.open-swe: f2c51f7 → 584e8e2 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.langchain-ai.open-swe: 0.3.8-unstable-2026-10-20 → 0-unstable-2026-10-21 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.langchain-ai.open-swe: 5a72aff → bebbbe6 — sudosubin/agents.nix0 reactions
On YouTube · 9
- Aug 6, 2025Introducing Open SWE: An Open-Source Asynchronous Coding Agent — LangChain30k views · 76 comments
- Aug 12, 2025Open-SWE: Opensource Jules! FULLY FREE Async AI Coder IS INSANELY GOOD! — WorldofAI8.5k views · 14 comments
- Aug 7, 2025Open SWE : Open Source Asynchronous Coding Agent (Auto-Code+Review+PR) | CURSOR Alternative Free — Codedigipt2.2k views · 1 comment
- Mar 19, 2026langchain-ai/open-swe - Gource visualisation — Gourcer798 views · 1 comment
- Apr 29, 2026Open SWE Setup Explained: LangChain's Issue to PR Coding Agent — TechWealth Hub390 views
4 more on YouTube
- Oct 16, 2026Open SWE GitHub Explained: Async Coding Agents, Sandboxes, and Review Loops — Alex Hitt259 views
- Aug 20, 2025Open SWE GitHub App Permissions Walkthrough — Brace Sproul157 views
- Aug 10, 2026Open-SWE Architecture: Multi-Graph Agent Harness — Latent AI99 views
- Sep 1, 2026Open-SWE Architecture: Multi-Graph Agent Harness (Audio Deep Dive) — Latent AI30 views
On Bluesky · 9
- Mar 21, 2026I stumbled upon this excellent GitHub project about building safe, automated coding agents for internal tools - with sandboxing,… — @alexiskirke.bsky.social6 likes and reposts · 3 replies
- Mar 19, 2026Stripe, Coinbase, and Ramp all built internal coding agents independently and converged on the same architecture, LangChain packaged those… — @ai-nerd.bsky.social3 likes and reposts
- Mar 19, 2026🚀 Skyrocketing! 🚀 (200+ new stars) 📦 langchain-ai / open-swe ⭐ 5,813 (+454) 🗒 Python An Open-Source Asynchronous Coding Agent — @github-trending.bsky.social3 likes and reposts · 1 reply
- Mar 20, 2026https://github.com/langchain-ai/open-swe — @tom-doerr.bsky.social2 likes and reposts
- Mar 21, 2026Anybody played with open-swe yet ? github.com/langchain-ai... — @0xmeow.bsky.social1 likes and repost
4 more on Bluesky
- Mar 20, 2026今日のGitHubトレンド langchain-ai/open-swe 組織内のコーディングエージェントを構築するためのオープンソースフレームワークです。 SlackbotやCLIなど、社内システムと連携し、安全な環境で自動的にPR作成を行うエージェントを構築できます。… — @dailygithubtrends.bsky.social1 likes and repost
- Mar 18, 2026今日のGitHubトレンド langchain-ai/open-swe 組織内のコーディングエージェントを構築するためのオープンソースフレームワークです。 SlackbotやCLIなど、社内システムと連携し、安全な環境で自動的にPR作成を行うエージェントを構築できます。… — @dailygithubtrends.bsky.social1 likes and repost
- Aug 11, 2025GitHub CopilotはAIがコードを提案してくれるツールらしい。コーディングのスピードアップに役立つかもしれない。 yug1224 starred langchain-ai/open-swe https://github.com/langchain-ai/open-swe — @yug1224.com1 likes and repost
- Aug 11, 2025ほう。LangChainから。 — @matsuu.bsky.social1 likes and repost
On Hacker News · 4
- Aug 6, 2025An Open-Source Asynchronous Coding Agent5 points
- Aug 7, 2025OpenSWE: Open Source Devin alternative2 points
- Mar 18, 2026OpenSWE1 point
- May 29, 2025Open SWE is an open-source cloud based coding agent1 point
On the web · 3
- Oct 29, 2026langchain-ai/open-swe · 10.5K Stars · GitHub 趋势 — open-repo.com
- Sep 22, 2026An Open-Source Asynchronous Coding Agent - NsN — namns.i234.me
- Aug 11, 2025Langchain Ai Open Swe | MAGI//ARCHIVE — tom-doerr.github.io
Used with
Projects with it also use connections.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
stacksyncdataSkillconnections
Lists, creates, reads, renames, shares, reauthorizes and deletes Stacksync connections, reads the live tables and columns of a connected app, and explains network options and app rate limits. Use when someone wants to connect an app or database, a connection expired or needs reauthorization, a teammate cannot see a connection, a connection must be deleted, someone asks which tables or fields an app has, or a database sits behind a firewall or in a private network.
Also in 3 projects that use this
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- coder/skills★ 14same name
- MosoFin/mosofin-mcp-plugin★ 3same name
- MosoFin/mosofin-plugins★ 3same name
- wyattjoh/skills★ 3same name
- stacksyncdata/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- openswe/database/migrations/AGENTS.mdAGENTS.md
- openswe/middleware/AGENTS.mdAGENTS.md
- openswe/sandboxes/AGENTS.mdAGENTS.md
- openswe/sandbox_scripts/AGENTS.mdAGENTS.md
- openswe/tools/AGENTS.mdAGENTS.md
- ui/AGENTS.mdAGENTS.md
- writing-pr-body-title-descriptionSkill
- connectSkill
- threadSkill
- dashboard-previewSkill
- local-gh-devSkill
- baby-sitSkill
- html-artifactsSkill
- linear-ticketsSkill
- web-appsSkill
- baby-sitSkill
- html-artifactsSkill
- linear-ticketsSkill
- web-appsSkill
- workspacesSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Only workspace admins can change a workspace's image, from an admin thread or through supported writes in a verified sole-writer shared …
- Distinctive: line 17
If the asker is not an admin, tell them what would need to happen and who can do it.
- Very specific: line 57
Write it non-interactive and safe to re-run: start with set -euo pipefail.
- Distinctive: line 58
Never write a secret to disk — the proxy injects git auth per run.
- Distinctive: line 63
Keep it to seconds. It runs in three places:
- Distinctive: line 67
In a run's own sandbox: when it boots from an image older than an hour, before the first model call, so the run works against fresh …
- Distinctive: line 68
Never fatal — a failure is logged and the run continues on the image as captured.
- Very specific: line 75
Read it with snapshotctl(action="status") or background_task("status", task_id), which report the stage reached — boot, setup, update, …
- Distinctive: line 76
Check in at intervals; do not poll in a loop.
- Very specific: line 78
When it fails: the stage that broke is marked failed with its exit code, error names the script, and output is the log.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Workspaces
A workspace prefers repositories and owns Slack channels, MCP connections, and team settings, plus the sandbox image its runs boot from.
Preferring a repository routes its GitHub and Linear events here and preloads it into the image; it does not limit access, since every workspace's sandbox can reach every repository the GitHub App installation can.
That image is two things: a record (name, prompt, repos, sizing, optional scripts) and a published sandbox image, <prefix>-environment-<slug>:latest.
Runs routed to a workspace boot from its image and get its prompt appended to their system prompt.
The workspace named default is what a run uses when routing picks no other.
Only workspace admins can change a workspace's image, from an admin thread or through supported writes in a verified sole-writer shared thread. Shared writes return only acknowledgements; workspace reads and switching to another workspace's image still require a private admin surface. Anyone can read workspaces on the Workspaces page. If the asker is not an admin, tell them what would need to happen and who can do it; do not try the tools.
The one rule: build here, publish from here
You do not write a workspace's image as a script and hope.
You build it in the current thread's own sandbox with ordinary tools — execute, the file tools — and when it works you call publish_workspace.
That captures this sandbox as the image and writes the record only after the capture succeeded.
Nothing is half-written on failure, and the image is usable the moment the call returns.
Everything on the sandbox filesystem is captured, so provision it fully and leave no tokens, credentials, or proxy secrets on disk.
Which image to start from
The image you publish is whatever you are sitting on plus your changes, so start the admin thread on the right one:
| You want to… | Start the admin thread… | Then |
| Edit a workspace's image | in that workspace (composer → Workspace picker) | change it, publish_workspace under the same name |
| Fork one into a new workspace | in the parent | change what differs, publish_workspace under a new name |
| Build from scratch | in no workspace, or recreate_sandbox(source="base") | provision everything, publish |
Already on a private admin surface and need a different image?
recreate_sandbox(workspace=<slug>) with a slug from list_workspaces.
The old sandbox is detached, not deleted.
setup_script — the reproducibility contract
Optional.
It is not the build; you already did the build by hand.
It is the record of how to reproduce the image from the base snapshot, and when present a nightly cron replays it on a throwaway sandbox and replaces the image only if it exits 0.
Anything you did by hand that the script does not do therefore shows up as a failed refresh on the Workspaces page rather than as silent drift.
snapshotctl(action="rebuild") runs the same check on demand.
Two consequences:
- The script must describe the whole build from base, even for a fork. By hand you only did the delta on top of the parent; the nightly does not start from the parent.
- Leaving it off is allowed. The workspace then has no nightly check and keeps whatever image was last published.
Write it non-interactive and safe to re-run: start with set -euo pipefail; clone the preferred repos listed in OPENSWE_WORKSPACE_REPOS into /workspace/<repo>, where runs expect every checkout (runs clone any other repository on demand); install rg, gh, toolchains, dependencies; warm caches.
Never write a secret to disk — the proxy injects git auth per run.
update_script — keeping a live image fresh
Optional; typically git pull plus a dependency sync.
Keep it to seconds.
It runs in three places:
- At the end of every full rebuild, so a broken one is caught on a builder.
- In a run's own sandbox when it boots from an image older than an hour, before the first model call, so the run works against fresh checkouts. Never fatal — a failure is logged and the run continues on the image as captured.
- As an hourly update refresh — boot from the current image, run it, capture — enqueued by that same creation, so later runs skip step 2.
Reading a refresh
A rebuild takes minutes to an hour and runs on a throwaway builder, not the thread's sandbox.
snapshotctl(action="rebuild") returns status: "started" and a task_id; it is not done.
Read it with snapshotctl(action="status") or background_task("status", task_id), which report the stage reached — boot, setup, update, capture — and, while a script is running, a tail of its live bash -x trace.
Check in at intervals; do not poll in a loop.
When it fails: the stage that broke is marked failed with its exit code, error names the script, and output is the log.
The previous image stays in place — runs never drop to the base snapshot because a script broke.
Fix the script with snapshotctl(action="edit"), which needs no sandbox and returns the previous values so the edit can be undone, then rebuild again.
snapshotctl(action="history") shows who changed the workspace and when; stop cancels a rebuild that is going nowhere.
Logs are written under /open-swe/environment/logs/ (setup.log, update.log) with the scripts beside them, and are captured into the image — so any sandbox booted from a workspace's image can read how it was built.
Snapshot names
The name belongs to the workspace, not to whichever sandbox produced the image: every publish and every refresh moves the same latest tag.
Runs boot from the immutable snapshot id on the record, so a capture mid-run cannot change what a reconnecting sandbox comes back to.
Override the name with snapshot_name on publish; it must not contain a colon.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

