Palot is an independent desktop client for OpenCode 2 on Linux and macOS. It is not an official OpenCode project and is not affiliated with or endorsed by the OpenCode maintainers.
Palot keeps OpenCode as the source of truth for projects, sessions, messages, models, and tool execution. The desktop app adds a focused interface for working across sessions, reviewing activity and changes, handling requests, and managing local OpenCode connections.
Palot v2, introduced in 0.12.0, is a ground-up rebuild for OpenCode v2 and a breaking
upgrade from Palot 0.11.x. “Palot v2” names the rebuild; the application follows
the 0.x SemVer release sequence. OpenCode has its own independent version.
Palot is open-source pre-release software under active development. The 0.12.1 release line adds Linux x64 and macOS Apple Silicon desktop packages. macOS downloads are ad-hoc signed, not Apple Developer ID signed or notarized. Updates are manual. See the installation guide's platform matrix for tested systems and limits.
Expect incomplete features, breaking changes, and release paths that have not been qualified on clean supported machines. Startup recovery exists, but it is still pre-release and should not be the only protection for important work.
The 0.12.0 release is source-only. Earlier 0.11.x downloads install the previous application, not Palot v2.
Download a matching desktop asset and SHA256SUMS from
Releases. Verify the file with
sha256sum <file> on Linux or shasum -a 256 <file> on macOS before installing.
If a release has no desktop assets, use the source instructions below.
| System | Package | Install |
|---|---|---|
| Arch / other glibc Linux, x64 | AppImage | chmod +x ./<file>.AppImage, then ./<file>.AppImage --show |
| Fedora 43, x64 | RPM | sudo dnf install ./<file>.rpm |
| Ubuntu 24.04, x64 | DEB | sudo apt install ./<file>.deb |
| macOS, Apple Silicon | DMG or ZIP | Copy Palot.app into Applications |
Linux also has a portable tar archive. Never run Palot as root or disable its sandbox. Downloads don't require Bun or Node; Palot prefers your installed OpenCode and offers an explicit official download if you need one.
On macOS, approve the verified app in System Settings → Privacy & Security →
Open Anyway if prompted. Optional local self-signing, after installing Command
Line Tools with xcode-select --install:
codesign --force --timestamp=none --sign - /Applications/Palot.app
codesign --verify --deep --strict /Applications/Palot.appThis isn't Apple notarization and may still require per-app approval. See the installation guide for package verification, dependencies, signing, updates and removal.
Palot connects to the registered local OpenCode service by default. Opening Palot, retrying a connection, or recovering a disconnected event stream does not start, replace, or upgrade that service. If no reachable service is found, use Start OpenCode and review the confirmation: the official startup API can also recover an unresponsive service, which may interrupt other connected clients. Restarting or replacing a service version requires a separate confirmed action.
An existing user-installed OpenCode runtime is preferred for explicit local startup. Connection settings let you choose an installation, check the Stable or Beta channel, and explicitly update it using OpenCode's npm, Bun, pnpm, Yarn or curl upgrade support. Updating the executable does not restart the service. Desktop installers do not bundle OpenCode. If you don't have it installed, setup can explicitly download a verified fallback directly from opencode.ai into Palot's application data, without changing your global installation. A service started by Palot is still shared with other OpenCode clients; closing Palot leaves it running. Remote and SSH profiles do not fall back to local startup. Automatic shared-service startup and a separate isolated managed profile are not currently offered.
Start with the installation guide for Arch Linux, Fedora, Ubuntu, and macOS prerequisites, pinned Bun/Vite+ setup, and the exact development CLI version. It also covers updating, uninstalling, and local macOS self-signing without weakening Gatekeeper.
| Platform | Start here |
|---|---|
| Arch / Omarchy | Pacman prerequisites and user-local or local package installation |
| Fedora 43 | DNF prerequisites and desktop setup |
| Ubuntu 24.04 | APT prerequisites and per-app sandbox setup |
| macOS | xcode-select --install, then native prerequisites and self-signing |
With the pinned Bun and Vite+ toolchain
available, install project dependencies using vp install --frozen-lockfile.
After cloning and completing that setup, run from the repository root:
# Linux: build, verify, install for your user, and launch Nightly
bun run install:nightly:linux
# macOS: one-time local signing identity (requires OpenSSL 3)
bun run setup:signing:mac
# Then build, verify, locally sign, install, and launch
bun run install:nightly:mac
# Or Linux/macOS: launch the development app in the foreground
bun run dev:focusSource builds require Bun 1.4.2, Node.js 24 or later, and Vite+. Stable OpenCode
2.x starting at 2.0.7 is supported as an external service; the client and
release-smoke runtime are pinned to 2.0.9. V2 betas require explicit consent.
See runtime compatibility before upgrading.
bun run dev starts hidden; bun run dev:visible shows the window without taking
focus. Windows is not a qualified installation target.
On macOS, the signing script creates a local certificate and changes trust in
your user keychain; review it first and run it in an interactive Terminal. It
does not provide Apple Developer ID signing or notarization. If you use
Homebrew, brew install openssl@3 provides the required signing tool; the guide
shows the scoped PATH command. Never disable Gatekeeper or run the build as root.
Back up important work and configuration before switching. The new app requires OpenCode v2; a V1 server is not compatible. Follow the official OpenCode migration guide for OpenCode-owned data and configuration. Palot settings, plugins, installation paths and workflows from 0.11.x are not all guaranteed to carry over. Existing 0.11.x binary downloads are legacy releases, not builds of this source tree.
Palot does not currently include usage analytics, crash reporting, or telemetry that sends data to Palot maintainers. It stores app settings, local logs, and some Palot-owned state on the device. Prompts, repository context, model requests, and tool activity are handled by the OpenCode service and providers you configure.
Read PRIVACY.md before using Palot with sensitive repositories or remote OpenCode servers.
- Contributing
- Documentation index
- Support
- Security policy
- Accessibility
- GitHub Issues
- GitHub Discussions, planned but currently disabled
Palot-authored code is licensed under the MIT License. Vendored code, skills and assets retain their applicable licenses and notices; see third-party notices. See TRADEMARKS.md before publishing a fork or distribution using the Palot name or branding.
