The research preview runs locally on macOS. Install the released app, or build it from this repository; either way you finish setup inside the app. Codex is the first supported provider, and sign-in is Sign in with ChatGPT in the app - no separate provider CLI login.
For the terminal client and its independent build command, see Terminal client. Both clients use the same Home and runtime.
Releases are published on
GitHub Releases as a disk
image for Apple Silicon, Octopus-<version>-macos-arm64.dmg, with
checksums.txt and install.sh.
Requirements:
- macOS 14 or later on Apple Silicon.
- Command Line Tools for Xcode (
xcode-select --install). Octopus runspython3andgitfrom them; a Mac without them offers the install the first time something callspython3. - A ChatGPT account with access to the model you select.
Install the latest release from Terminal:
curl -fsSL https://github.com/miuuyy/Octopus-SI-OS/releases/latest/download/install.sh | shThe installer checks macOS and the Command Line Tools, verifies the disk
image against checksums.txt, and copies Octopus.app to /Applications
(~/Applications when /Applications is not writable). Set
OCTOPUS_VERSION=<version> to install a specific release, or
OCTOPUS_APPLICATIONS_DIR to choose the folder.
To install by hand, download the disk image, drag Octopus to Applications, and run this once before the first launch:
xattr -dr com.apple.quarantine /Applications/Octopus.appThe build is ad-hoc signed, not notarized by Apple. A browser marks the
download as quarantined, and macOS then refuses to open the app. Open
Anyway in System Settings would admit only the app itself: Octopus copies its
tools into your Home when it installs packages, the copies keep the quarantine
mark, and macOS would block them one by one. The installer above downloads
with curl, so nothing it installs is quarantined. Do not run Octopus from the
mounted disk image.
To update, quit Octopus and its runtime, then install the new release the same
way. Octopus is a research preview: releases with incompatible persisted formats
require a fresh Home through setup. Existing Homes are never migrated or repaired
on startup; keep your sign-in credentials when resetting a disposable Home.
To uninstall, delete Octopus.app; your Home (~/.octopus by default) and the
Codex sign-in in ~/.codex stay until you remove them.
Building is for development and for architectures without a published release.
- macOS 14 or later, with the checkout on an APFS volume.
- Xcode Command Line Tools (
xcode-select --install), including Clang, Swift, the macOS SDK, and/usr/bin/python3. - Node.js 24 LTS and npm. Node 20 does not support the required native rebuild and SQLite checks.
- Current stable Rust and Cargo. The workspace and locked dependencies require at least Rust 1.91. Use current stable for the preview build.
- Internet access to fetch dependencies and the pinned provider distribution. A ChatGPT account with access to the selected model is needed for Home.
The packager builds for the architecture of the Node process running it. Use a native Node installation on Apple Silicon. Intel packaging has a source path but is not established as a tested preview distribution here.
git clone https://github.com/miuuyy/Octopus-SI-OS.git
cd Octopus-SI-OS
npm ci --prefix appThe native presentation build requires headers for Node 24.15.0, independently of the Node version running npm. Fetch the pinned headers from Node.js:
mkdir -p app/build
curl -fL https://nodejs.org/download/release/v24.15.0/node-v24.15.0-headers.tar.gz \
-o app/build/node-v24.15.0-headers.tar.gz
printf '%s %s\n' \
9a9250039fef572d0bcc110ac5e78055faf5604421211d2d5f578ebc5a34e703 \
app/build/node-v24.15.0-headers.tar.gz | shasum -a 256 -c -
tar -xzf app/build/node-v24.15.0-headers.tar.gz -C app/buildThe checksum is from the Node.js release manifest. Then package and open the app:
OCTOPUS_NATIVE_NODE_HEADERS="$PWD/app/build/node-v24.15.0/include/node" \
npm --prefix app run package:mac
open -n ./app/build/Octopus.appPackaging builds the renderer, release runtime, capability executables, and
provider bridge; it includes the managed Codex distribution and verifies an
ad-hoc code signature. The output is app/build/Octopus.app, built for this
machine. It is not a notarized installer or a universal binary. Repackaging
replaces that bundle in place.
Follow the client screens. The actions depend on the setup already present on your machine:
- Sign in with ChatGPT opens browser authentication. Complete it in the browser and return to the client.
- The access screen lets you configure or enter the local administrator password.
- The embedded launch terminal prepares a command ending in
octopus up. Press Enter to run it and wait for the runtime's ready state. - Workspace setup asks for a starting structure, project names, and capabilities. Review the choices and select Set up Octopus.
The local access password is separate from provider sign-in. Later, avatar → Log out returns to this gate without removing your Home or provider credentials.
When the client reaches Home, send a short message. A model reply checks the connection; exercising a task's granted tools checks that task's capability setup.
For a new task, use Create agent if the Agent list is empty. Choose a Project and an offered model, review capabilities, and create the Agent. Then choose its Project and select the Agent in the task composer.
The desktop client guide explains Home, Tasks, voice, gestures, and how Applications and Drivers become available to a project.
Model availability and usage limits belong to the provider account. Additional applications and voice capabilities can require their own credentials and macOS permissions.
The app carries its own Codex CLI: a pinned upstream release, checked against its SHA-256 when the app is packaged. You do not need to install Codex, and a Codex CLI you installed yourself is neither used nor updated by Octopus.
The sign-in is shared. Sign in with ChatGPT keeps its credential in the
machine's Codex home, ~/.codex unless CODEX_HOME says otherwise - the same
place Codex CLI uses. So:
- If Codex CLI on this Mac is already signed in with ChatGPT, Octopus starts signed in.
- Signing in or out in either one changes it for both.
- Octopus needs a ChatGPT sign-in. If
~/.codexholds an API-key login, setup asks you to sign in with ChatGPT, and doing so replaces that login for Codex CLI as well.
To keep them apart, launch Octopus once with its own Codex home:
open -n --env OCTOPUS_HOME="$HOME/.octopus" --env CODEX_HOME="$HOME/.octopus/codex" /Applications/Octopus.appOctopus remembers this pair in ~/Library/Application Support/Octopus/launch.json
and uses it for later launches from the Dock or Finder.
By default, the app uses ~/.octopus as its Octopus Home. The active registry,
run and EE records, ledger, interface state, and client setup data live there.
Provider sign-in uses the machine's Codex authentication boundary, normally
under ~/.codex; authentication is not contained entirely in the Octopus Home.
Treat both locations as private.
The commands below use the installed app at /Applications/Octopus.app; for a
build from source, use ./app/build/Octopus.app from the checkout root.
For a separate preview Home, launch the app with the environment variable:
open -n --env OCTOPUS_HOME="$HOME/.octopus-preview" /Applications/Octopus.appKeep the Home path short: macOS Unix sockets have a path-length limit. This separates Octopus state, but does not create a separate provider account (see Codex CLI).
Inspect the selected default Home without booting:
/Applications/Octopus.app/Contents/Resources/app/bin/octopus doctorFor a custom Home, pass the same OCTOPUS_HOME to diagnostics. A healthy boot or
doctor report does not prove that every provider or tool works. If setup fails,
retain the displayed error and use the client's explicit retry/sign-in action;
do not reset the Home or replace its descriptors to make an error disappear.
