devpit is built for Linux first. macOS has a build too, and Windows has an installer; neither is signed with a certificate. On Linux and macOS a single line installs the latest release, and it checks the download before it installs anything.
What it needs
- Linux, X11 or Wayland, on x86_64 or aarch64. Or macOS, or Windows — see Windows.
tmux. Terminals are tmux panes, and that is how they outlive the window. On Windows it is psmux, and the installer carries it.- Claude Code, with
claudeon your PATH. Chat, agent steps and session steps all run through it. It is the only CLI devpit drives end to end. Codex, Gemini, Cursor and the others run in a terminal. See Providers.
One line
curl -fsSL https://devpit.app/install.sh | sh
It asks GitHub which release is the latest, downloads the one file that fits the machine along with the release's SHA256SUMS, and refuses to install anything that does not match. Where minisign is installed, it also checks the file is signed by devpit's release key, and refuses one that is not; without it, it says the signature was not checked. Then it puts the file in place:
| Machine | What goes in |
|---|---|
| Debian, Ubuntu | the .deb, through apt, which asks for your password |
| Other Linux | the AppImage, into ~/.local/bin, with an entry and an icon in the application menu |
| macOS | devpit.app, into Applications |
Read install.sh before you pipe it into a shell; it is short on purpose. Run it again at any time to catch up, and it says so when there is nothing to do. On Windows it stops and points at the installer instead: download it here.
An AppImage needs FUSE 2. If the machine does not have it, the script says so; on Ubuntu and Debian, install it with sudo apt install libfuse2.
Settings
All optional, set in front of sh:
| Variable | What it does |
|---|---|
DEVPIT_VERSION=0.1.7 |
installs that version instead of the latest |
DEVPIT_FORMAT=appimage |
on Linux, takes the AppImage even where apt is available |
DEVPIT_DRY_RUN=1 |
downloads and verifies, says what it would do, and stops |
curl -fsSL https://devpit.app/install.sh | DEVPIT_FORMAT=appimage sh
By hand
Every file is on the latest release, and each name carries the version:
- Linux:
devpit_<version>_amd64.deb/_arm64.deb, ordevpit_<version>_amd64.AppImage/_aarch64.AppImage. - macOS:
devpit_<version>_universal.dmg, for both Apple silicon and Intel. - Windows:
devpit_<version>_x64-setup.exe, or the newest one directly.
Checking a download against the release's SHA256SUMS takes one line:
sha256sum -c SHA256SUMS --ignore-missing
The .sig beside each package is the updater's: an installed devpit checks it before replacing itself, against a key compiled into the binary already running. A first download has no such binary, which is what SHA256SUMS is for — and what the install line checks for you, with the signature too where minisign is there.
Where each build stands
| Platform | Status |
|---|---|
| Linux | The build. .deb and AppImage, for x86_64 and aarch64. |
| macOS | One universal app, not signed with an Apple Developer ID and not notarised. |
| Windows | A per-user installer with psmux inside, not signed with a code-signing certificate. The Linux build also runs inside WSL 2. See Windows. |
macOS and Gatekeeper
The first time you open a copy downloaded through a browser, Gatekeeper refuses it with "devpit is damaged" or "cannot be opened". That is the missing certificate talking, not the file. Open it once with right-click → Open. Or check SHA256SUMS first and then clear the quarantine flag yourself:
xattr -dr com.apple.quarantine /Applications/devpit.app
Once devpit is installed, it keeps itself up to date. See Staying up to date. Removing devpit never removes your work. See Where your data lives.