Goko
Goko is a macOS-first desktop app for running interactive command-line agents by
project. The Tauri/React app talks to the Rust gokod daemon, which owns the
terminal processes. Project and session metadata is stored separately in SQLite.
macOS prerequisites
- macOS with Xcode Command Line Tools. Install them with
xcode-select --install. Full Xcode is only needed if you later build the iOS target. - Rust stable, installed with rustup.
- Node.js 22.22.2 or newer in the 22.x line (or 24.15.0 or newer in the 24.x line) and pnpm 10. The current lockfile includes packages with these Node engine requirements.
Tauri's macOS prerequisites explain the native toolchain requirements.
Install dependencies
From the repository root:
pnpm install
Run the macOS app in development
From the repository root:
pnpm -C apps/desktop tauri dev
This starts the native Tauri window. Its beforeDevCommand builds gokod and
starts Vite on port 5173; you do not need to start the daemon separately. Vite
uses strictPort, so stop a stale Goko dev server if port 5173 is already in
use.
To keep development data separate from your normal Goko data, set GOKO_HOME:
GOKO_HOME=/tmp/goko-dev pnpm -C apps/desktop tauri dev
Without that variable, macOS data is stored under
~/Library/Application Support/Goko.
Build macOS bundles
Build for the current Mac architecture and generate the .app and .dmg:
pnpm -C apps/desktop tauri build --bundles app,dmg
To package just one format, use --bundles app or --bundles dmg. Build
artifacts go under target/release/bundle/; this workspace's Cargo target
directory is at the repository root.
On an Apple Silicon Mac the native target is aarch64-apple-darwin; Intel Macs
use x86_64-apple-darwin. To build a universal macOS app, install both Rust
targets and pass Tauri's universal target:
rustup target add aarch64-apple-darwin x86_64-apple-darwin
pnpm -C apps/desktop tauri build --target universal-apple-darwin --bundles app,dmg
See Tauri's macOS bundle and DMG guides for distribution details. Building a bundle does not set up Developer ID signing or notarization; see Tauri's macOS signing guide before distributing it outside your development machine.
The build hook compiles and stages the matching gokod sidecar, so the app can
start its daemon from inside the .app bundle. Bundle artifacts are unsigned
unless a local signing identity is configured; they are intended for local
testing until Developer ID signing and notarization are set up.
The current build also warns that the bundle identifier dev.goko.app ends in
.app; Tauri recommends changing it before distribution.
Other development checks
The root dev and build scripts run Vite only. Use the Tauri command above to
open the native desktop app.
pnpm typecheck
pnpm test
cargo test --workspace
cargo fmt --check
cargo clippy --workspace -- -D warnings
Architecture
Changelog
See CHANGELOG.md.
License
Apache-2.0. See LICENSE.