Skip to content
Projects

ChifferCo/woodshed has 8 GitHub stars and 0 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-14 19:56 UTC. Last push 2026-11-13.

How these counts are measured

What you can do

  • Isolated environments. Sessions don't share a branch, a database or an app, so they can run side by side.
  • Pull requests with proof. The agent checks its change in a browser before opening the PR, and says in it what it couldn't check.
  • Review in the console. The Review tab shows a session's diff with the agent's notes, and answers questions about any line.
  • Start from GitHub, the console or Slack. Add the woodshed label to an issue, comment /woodshed <what to do>, or press New session.

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

Cloud dev environments for your agents and a console to manage them all so you can ship faster.

Self-hosted

README.md

Original

Woodshed

Cloud dev environments for your coding agents.

License Node 22+ Dependencies: 0

woodshed.run · Quickstart · How it works · Self-hosting · Docs

Woodshed is an open-source platform for running coding agents in cloud dev environments. Each task gets a container with its own branch, a copy of your databases and a running copy of your app. The agent (Claude Code or Codex) makes the change, tests it in a browser and opens a pull request. You follow every session from one console, and can take over any of them.

Quickstart

Hosted: sign up at woodshed.run and connect a GitHub repository.

Self-hosted: you need Docker, Node 22 or later, git, the GitHub CLI (gh), and a Claude plan or an Anthropic API key.

curl -fsSL https://woodshed.run/install | bash

It asks nothing: it builds a session image for any repository (a few minutes the first time) and opens the console at http://localhost:7690. There, Console settings, Repos, Add a repo lists the repositories your gh login can push to; each session clones its repository and installs its dependencies at start. My settings takes your Claude token. Then press New session and say what you want built. Sessions push as you, so a GitHub App is optional on your own machine. Everything it makes is in ~/.woodshed, and ~/.woodshed/bin/woodshed starts the console again. WOODSHED_TAILSCALE=1 also serves it to your own devices on your tailnet; a repository whose project file has databases needs the install run again with WOODSHED_REPO=owner/name, which starts Postgres or Mongo for it (docs/self-host.md, "On this machine").

With a coding agent: clone this repository and ask it to "set Woodshed up on this machine, following docs/self-host.md" (or "on our server", or "on AWS", for owner/name). The runbook gives it a check after each step, writes your repository's project file with it, and stops for the steps that are yours: picking the repository, your Claude token, and on a server or AWS the GitHub App and any account, DNS or firewall.

Features

  • Isolated environments. Sessions don't share a branch, a database or an app, so they can run side by side.
  • Pull requests with proof. The agent checks its change in a browser before opening the PR, and says in it what it couldn't check.
  • Review in the console. The Review tab shows a session's diff with the agent's notes, and answers questions about any line.
  • Start from GitHub, the console or Slack. Add the woodshed label to an issue, comment /woodshed <what to do>, or press New session.
  • Pause and resume. An idle session pushes its work and stops. The next comment picks it up where it left off.
  • No credentials in sessions. Sessions never hold cloud keys or production data.

How it works

flowchart LR
  GH[GitHub label or comment] --> C
  SL[Slack mention] --> C
  UI[Console: New session] --> C
  C[Console] -->|local or aws provider| S1[Session]
  C --> S2[Session]
  C --> S3[Session]
  S1 --> PR[PR with Proof]

  subgraph each session
    S1 --- DB[(own Postgres and Mongo)]
    S1 --- APP[running app]
  end

The console receives the request and starts a session through the provider. The session copies the database template, checks out a branch, does the work, checks it in the running app, and opens a pull request. Later comments and review feedback go back to the same session.

Self-hosting

woodshed.run runs the same code as this repository. To run it yourself:

Where Sessions run on Secrets Databases Set up with
Your laptop Docker Encrypted files on disk Postgres and Mongo in Docker Compose curl -fsSL https://woodshed.run/install | bash
A bare-metal server or VM (Hetzner, OVH, …) Docker on that machine Encrypted files on disk Postgres and Mongo in Docker Compose The server guide
AWS Fargate, one task per session Secrets Manager RDS Postgres, and Mongo on the console's machine Terraform: the AWS guide

The first two use the local provider and the last uses aws. A server holds as many sessions as its cores and memory allow; AWS adds Fargate tasks as you need them.

Using it on your repository

Add a .woodshed/project.yaml to your repository. It tells a session what to install, which env files to write, how to build the database and how to start the app. See the project file for every field and a full example.

node <woodshed>/shared/project.mjs check, run from your repository, checks the file against your checkout. To run the same check on pull requests that touch it, call the reusable workflow from one of your own:

on:
  pull_request:
    paths: ['.woodshed/**', '.github/workflows/**']
permissions:
  contents: read
jobs:
  check:
    uses: ChifferCo/woodshed/.github/workflows/project-check.yml@main

Setting it up has the steps.

AI review on any repository

Any GitHub repository can run Woodshed's code review, merge-risk check and QA on its pull requests with no Woodshed installation: the checks run in the repository's own GitHub Actions. The setup script writes the workflows, turns on the one required setting, and asks for an ANTHROPIC_API_KEY:

scripts/enable-review.sh <owner/repo>        # review and merge risk
scripts/enable-review.sh <owner/repo> --qa   # also QA

It needs the GitHub CLI signed in with the workflow scope and admin on the repository. Then end a pull request's last commit message with [woodshed-review] for a review, and add the woodshed-qa label for QA (on pull requests from a branch in the repository, not forks). QA starts the app the way the project file says, so there is nothing in the workflow to edit. Already running a Woodshed console? --qa-runner woodshed runs QA as a session there instead of in CI.

See the review and QA in another repo to wire them by hand and for every option.

Documentation

Contributing

Questions go in Discussions and bugs in Issues. Woodshed is plain Node with no dependencies and no build step: clone it and run node --test. Read CLAUDE.md before your first pull request: it has the rules for secrets.

Woodshed is developed with Woodshed. Its own .woodshed/project.yaml is in this repository.

License

Woodshed is copyright ChifferCo, Inc. (COPYRIGHT) and licensed under AGPL-3.0, except ee/, which holds paid features under a commercial license.

Contributions are accepted under the Contributor License Agreement: see CONTRIBUTING.md.