Skip to content

Installation

This guide installs the full OSTwin runtime: CLI, dashboard, agent orchestration scripts, JavaScript tooling, Python environment, OpenCode integration, and optional services.

Prerequisites

The installer can install most missing dependencies for you.

DependencyRequiredNotes
macOS or LinuxYesNative Bash installer path.
BashYesUsed by the installer wrapper.
PowerShell 7+YesUsed by the orchestration engine. Auto-installed when possible.
Python 3.10+YesPython 3.12 recommended. Auto-installed when possible.
Node.js + npmYesUsed by dashboard and JavaScript CLIs. Auto-installed when possible.
BunRecommendedPreferred package manager for JavaScript runtime tasks. Auto-installed when possible.
GitRecommendedRequired for room worktree isolation. Shared isolation is the default.
Provider API keyYesAt least one of Google, OpenAI, Anthropic, or another configured provider.

Install OSTwin

Use the public bootstrapper for normal installs:

Terminal window
curl -fsSL https://twin.igot.ai/installer.sh | bash
# Non-interactive
curl -fsSL https://twin.igot.ai/installer.sh | bash -s -- --yes

The bootstrapper first tries the packaged Go ostwin-installer release. That binary provides the guided terminal flow, downloads the matching source archive, and delegates to the native platform installer.

If the packaged release binary is unavailable, install.sh falls back to the source-archive Bash installer. Checksum mismatches fail closed and do not fall back.

Common forwarded options:

Terminal window
--yes
--dir ~/.ostwin
--port 3366
--skip-optional
--sync-skills
--no-start

Common Installer Options

OptionPurpose
--yesRun without prompts.
--dir PATHInstall to a custom directory. Default: ~/.ostwin.
--port PORTSet the dashboard port. Default: 3366.
--skip-optionalSkip optional components.
--sync-skillsForce built-in skill sync.
--no-startInstall only; do not start services.
--dashboard-onlyInstall dashboard API and frontend only.
--no-channelInstall bot dependencies but do not start channel connectors.

Release Artifacts

Tagged releases publish these installer assets:

install.sh
checksums.txt
ostwin-installer_darwin_amd64.tar.gz
ostwin-installer_darwin_arm64.tar.gz
ostwin-installer_linux_amd64.tar.gz
ostwin-installer_linux_arm64.tar.gz
ostwin-installer_windows_amd64.tar.gz
ostwin-installer_windows_arm64.tar.gz

API Key Setup

OSTwin needs at least one LLM provider key. Add keys to ~/.ostwin/.env after installation:

Terminal window
ANTHROPIC_API_KEY=sk-ant-...

Reload your shell after installation:

Terminal window
source ~/.zshrc

Use ~/.bashrc instead if your shell is Bash.

Optional Components

Search Engine

Install local SearXNG support during setup:

Terminal window
./build.sh --search-engine --search-engine-mode docker

Or install and start it after setup:

Terminal window
ostwin search-engine install
ostwin search-engine start

The local runner uses ~/.ostwin/.venv/bin/uv, installs SearXNG dependencies from ~/.ostwin/search-engine/searxng-src/requirements.txt, and starts with ~/.ostwin/search-engine/etc/settings.yml.

Dashboard Daemon

Install OS autostart for the dashboard and host daemon:

Terminal window
./build.sh --daemon

Skip daemon setup explicitly:

Terminal window
./build.sh --no-daemon

Channel Connectors

Start Telegram, Discord, and Slack connectors during install:

Terminal window
./build.sh --channel

Skip connector startup:

Terminal window
./build.sh --no-channel

Runtime File Locations

After installation, OSTwin uses this runtime structure:

PathPurpose
~/.ostwin/.agents/Installed engine, roles, skills, MCP config, and CLI scripts.
~/.ostwin/.envRuntime environment variables and provider API keys.
~/.ostwin/plans/Registered global plans.
<project>/.agents/Project-local OSTwin scaffold created by ostwin init.
<project>/.war-rooms/Active war-room directories created at runtime.
<project>/.agents/plans/Local plan copies that agents can read inside the project sandbox.

Verify Installation

Run the health check:

Terminal window
ostwin health

Check the installed version:

Terminal window
ostwin version

Start or restart the dashboard if it is not already running:

Terminal window
ostwin dashboard start

Open the dashboard at:

http://localhost:3366

Initialize a Project

From the project you want OSTwin to operate on:

Terminal window
ostwin init

Create and run a plan:

Terminal window
ostwin plan create --file plan.md
ostwin run plans/my-feature.md

Monitor execution:

Terminal window
ostwin status --watch
ostwin logs room-001 --follow

By default, OSTwin runs with shared workspace isolation. Use room worktrees only when you need per-room Git worktrees:

Terminal window
ostwin run plans/my-feature.md --workspace-isolation room-worktree

Install and Run the Docs Site

The documentation site lives in docs/ and uses Astro Starlight.

Terminal window
cd docs
npm install --package-lock=false
npm run dev

Build the static docs site:

Terminal window
cd docs
npm run build

Preview the production build:

Terminal window
cd docs
npm run preview

The docs build runs npm run sync-installer first. That copies the root install.sh into docs/public/installer.sh and docs/public/install.sh, keeping the public curl installer URL aligned with the repository installer.

Update an Existing Install

To update an initialized project from the installed framework:

Terminal window
ostwin sync

To refresh the global install from a local checkout:

Terminal window
./build.sh --yes --sync-skills

Uninstall

Remove the local OSTwin install:

Terminal window
~/.ostwin/.agents/uninstall.sh

On Windows:

Terminal window
.agents\uninstall.ps1

Review the uninstall prompt before confirming, especially if you have local plans, logs, or generated artifacts under ~/.ostwin.

Next Steps

With OSTwin installed, create plan.md and start the work in the Quick Start.