Skip to content
/

Scion (GCP)

scion-gcp · GoogleCloudPlatform/scion · ★ 1.5k · last commit 2026-05-24

Primitive shape 2 total
Skills 2
00

Summary

Scion (GCP) — Summary

Scion is an experimental open-source Go-based multi-agent orchestration testbed from Google Cloud Platform, designed to run multiple AI coding agent harnesses (Claude Code, Gemini CLI, Codex, OpenCode) in parallel, each in their own container with their own git worktree. Each agent gets isolated credentials, config, and a dedicated feature branch — preventing merge conflicts across concurrent agents. The scion CLI manages the full agent lifecycle: start, attach (tmux), send messages, stop, resume, delete. Agents are configured via Templates (system prompt + skills bundles), enabling role specialization ("Security Auditor", "QA Tester"). A Hub architecture enables multi-machine orchestration where agents run on distributed Runtime Brokers (Docker, Podman, Apple Container, Kubernetes). OTEL telemetry provides normalized observability across harnesses. The philosophy is "less is more" — agents dynamically learn a CLI tool and use natural language to coordinate among themselves.

Differs from seeds: Scion is the most structurally similar to a research infrastructure harness (not a workflow methodology). Closest to claude-flow in multi-agent scope, but diverges in architecture: Scion uses per-agent containers + git worktrees (true OS isolation), while claude-flow uses a Node.js hive-mind with SQLite. Scion's "harness-agnostic" design (any CLI that runs in a container) is unique — it does not specialize in one AI tool but provides the container substrate for any.

01

Overview

Scion (GCP) — Overview

Origin

Scion is developed by Google Cloud Platform (GCP) as an experimental project. It is explicitly NOT an officially supported Google product and is not eligible for the Google Open Source Software Vulnerability Rewards Program. The name: "sci·on /ˈsīən/ — a young shoot or twig, cut for grafting or rooting."

Philosophy (verbatim from README)

"Rather than prescribing rigid orchestration patterns, Scion takes a 'less is more' approach: agents dynamically learn a CLI tool, letting the models themselves decide how to coordinate among agents. This makes it a rapid prototype testbed for experimenting with multi-agent patterns through natural language prompting."

Key Design Principles

  • Harness Agnostic — Works with Gemini CLI, Claude Code, OpenCode, and Codex
  • True Isolation — Each agent in its own container with separated credentials, config, and dedicated git worktree
  • Parallel Execution — Multiple agents as fully independent processes, locally or remotely
  • Attach/Detach — Agents run in tmux sessions; attach for human-in-the-loop, enqueue messages while detached
  • Specialization via Templates — Define agent roles with custom system prompts and skill sets

Project Status

  • Local mode: relatively stable
  • Hub-based workflows: ~80% verified
  • Kubernetes runtime: early, rough edges
  • Experimental; expect breaking changes

Repo Facts

02

Architecture

Scion (GCP) — Architecture

Distribution

  • Install from source: go install github.com/GoogleCloudPlatform/scion/cmd/scion@latest
  • No pre-built binaries (must build container images too)
  • Requires Docker (Linux/Windows) or Apple Container (macOS) or Kubernetes

Architecture Overview

Local Mode

scion CLI
  ├── Agent 1: Container (Claude Code) + git worktree branch-1
  ├── Agent 2: Container (Gemini CLI) + git worktree branch-2
  └── Agent N: Container (Codex) + git worktree branch-N

Each agent:
  - Own /home/gemini (dedicated home directory)
  - Own config + credentials
  - Attached to tmux session
  - .scion/ project config

Hub Mode (Multi-Machine)

Scion Hub (State Server: API + Database)
  ├── Runtime Broker A (laptop/VM with Docker)
  │   └── Agent Pods
  └── Runtime Broker B (Kubernetes cluster)
      └── Agent Pods

Workspace Strategy (Git Worktrees)

  • New worktree created at ../.scion_worktrees/<project>/<agent>
  • New feature branch created for each agent
  • Prevents merge conflicts across concurrent agents

Container Runtimes Supported

  • Docker (Linux/Windows/macOS)
  • Podman
  • Apple Container (macOS native)
  • Kubernetes (experimental, via Hub)

Directory Structure

scion/
├── cmd/                    # CLI commands (Cobra)
│   ├── start.go
│   ├── list.go
│   ├── attach.go
│   ├── message.go
│   ├── stop.go
│   ├── resume.go
│   ├── delete.go
│   ├── template*.go
│   ├── hub*.go
│   └── server*.go
├── pkg/
│   ├── agent/              # Agent lifecycle
│   ├── config/             # .scion/ init + embeds/
│   ├── harness/            # Gemini, Claude, Generic harnesses
│   ├── runtime/            # Docker, Apple, K8s abstraction
│   ├── runtimebroker/
│   ├── hub/
│   ├── hubclient/
│   └── store/              # SQLite (local), expandable
├── web/                    # React+Vite frontend (Hub)
├── .scion/                 # Templates + project config
│   └── templates/          # Agent role blueprints
└── skills/                 # Skill SKILL.md files
    ├── scion/
    └── team-creation/

Observability

  • Normalized OTEL telemetry across all harnesses
  • Logging and metrics for agent swarms
03

Components

Scion (GCP) — Components

CLI Binary (scion)

Key subcommands:

  • scion init --machine — Machine-level initialization
  • scion init — Project initialization (creates .scion/ directory)
  • scion start <template> "<prompt>" — Start new agent
  • scion start <template> "<prompt>" --attach — Start and immediately attach
  • scion list / scion ps — List active agents
  • scion attach <name> — Attach to agent's tmux session
  • scion message <name> "..." / scion msg — Send message to running agent
  • scion logs <name> — View agent logs
  • scion stop <name> — Stop agent
  • scion resume <name> — Resume stopped agent
  • scion delete <name> — Remove agent, container, and worktree
  • scion schedule — Schedule commands
  • scion hub * — Hub management commands
  • scion broker * — Runtime broker commands
  • scion templates / scion template import — Template management
  • scion whoami / scion version / scion doctor

Templates (Agent Role Blueprints)

Located in .scion/templates/:

  • docs-writer — Documentation writing agent
  • instance-manager — Instance management agent
  • release-notes — Release notes agent
  • web-dev — Web development agent

Each template = system prompt + collection of skills

Skills (in skills/)

  • scion/ — Core Scion skill for agent CLI tool learning
  • team-creation/ — Team creation workflow skill

Harnesses (in pkg/harness/)

  • gemini — Gemini CLI harness
  • claude — Claude Code harness
  • generic — Base harness for other LLM interfaces

Agent State Files (from README)

  • .scion/settings.json — Project settings (runtime choice, Hub config)
  • .scion/agents/ — Per-agent configuration (in .gitignore)
  • /home/gemini/.gemini-status.json — Agent status (STARTING/THINKING/EXECUTING/WAITING_FOR_INPUT/COMPLETED/ERROR)

Hub (State Server)

  • Central API + database for agent state, projects, templates, users
  • Web frontend (React+Vite)
  • Storage: GCS or Local
05

Prompts

Scion (GCP) — Prompts

agents.md (Project Context for AI Contributors)

# Scion Project Context

## Overview
`scion` is a container-based orchestration platform designed to manage concurrent 
LLM-based code agents. It supports both a standalone local CLI mode and a 
distributed "Hosted" architecture where state is centralized in a Hub and agents 
execute on disparate Runtime Brokers.

## System Goals
- **Parallelism**: Run multiple agents concurrently as independent processes.
- **Isolation**: Ensure strict separation of identities, credentials, and configuration.
- **Context Management**: Provide each agent with a dedicated git worktree to prevent conflicts.
- **Specialization**: Support role-based agent configuration via templates.
- **Interactivity**: Support "detached" background operation with the ability to "attach" 
  for human-in-the-loop interaction.

## Key Concepts
- **Workspace Strategy (Git Worktrees)**:
  - On start, a new worktree is created at `../.scion_worktrees/<project>/<agent>`
  - A new feature branch is created for each agent.
- **Observability & Interactivity**:
  - **Status**: Agents write state to `/home/gemini/.gemini-status.json` 
    (STARTING, THINKING, EXECUTING, WAITING_FOR_INPUT, COMPLETED, ERROR).
  - **Intervention**: When `WAITING_FOR_INPUT`, users can `scion attach <agent>` 
    to provide input or confirmations.

Technique: Architectural contract document used as AI contributor context. Defines state machine vocabulary (STARTING/THINKING/EXECUTING etc.) and workspace strategy as invariants that contributors must not break.

Template Philosophy (from README)

Specialization via Templates — Define agent roles ("Security Auditor", "QA Tester") 
with custom system prompts and skill sets.

Technique: Role specialization via system prompt + skill bundle composites. Templates are reusable agent blueprints — a named combination of behavioral instructions and tool access.

Coordination Philosophy (from README)

Rather than prescribing rigid orchestration patterns, Scion takes a "less is more" 
approach: agents dynamically learn a CLI tool, letting the models themselves decide 
how to coordinate among agents.

Technique: Emergent coordination — agents are taught to use the scion CLI tool (via skills) and then decide themselves how to communicate. No hardcoded message-passing protocol.

09

Uniqueness

Scion (GCP) — Uniqueness & Positioning

differs_from_seeds

Scion is architecturally most similar to claude-flow (multi-agent, parallel execution, coordinator role), but diverges sharply: claude-flow is an npm package running in one Node.js process with a hive-mind protocol and SQLite; Scion gives each agent its own container and git worktree, uses tmux sessions for human-in-the-loop interaction, and provides OTEL telemetry for cross-harness observability. Unlike any seed, Scion is explicitly harness-agnostic (Claude Code, Gemini CLI, Codex, OpenCode all supported equally). The "emergent coordination via CLI tool" philosophy (agents learn scion message and decide how to coordinate) is distinct from claude-flow's prescribed hive-mind protocols.

Distinctive Positioning

  1. Harness-agnostic by design: Scion treats Claude Code, Gemini CLI, Codex, and OpenCode as interchangeable harnesses. Templates specify which harness + system prompt. No other multi-agent framework is this provider-neutral.

  2. Emergent coordination: "Less is more" — agents learn a CLI tool and decide how to coordinate themselves via natural language messaging. No hardcoded orchestration protocol. This is an experiment in whether emergent organization outperforms prescribed coordination.

  3. Tmux-based human-in-the-loop: WAITING_FOR_INPUT status triggers human attachment via tmux session. Not a webhook or API — interactive terminal access. Unusual and practical for complex debugging scenarios.

  4. OTEL telemetry normalized across harnesses: Agents from different vendors produce comparable telemetry. Enables cross-agent observability dashboards and replay of coordination patterns.

  5. Hub + Runtime Broker architecture: Separates state (Hub) from compute (Broker). Enables agents on laptop + remote VM + K8s cluster in the same project. No other framework in this batch supports this topology.

Observable Failure Modes

  • No prebuilt binaries — must build container images (significant barrier)
  • Experimental status — local mode stable, Hub/K8s rough
  • Requires tmux on host for full functionality
  • "Less is more" emergent coordination can be unpredictable in production
  • Not an officially supported Google product
  • Git worktree at ../.scion_worktrees/ — coordinate placement with parent repo layout
  • 1,548 stars but early/experimental — limited production case studies
04

Workflow

Scion (GCP) — Workflow

Setup Phase

Step Artifact Gate
Build container images (images/build.sh) Agent container images Manual (no prebuilt)
scion init --machine Machine configuration Auto
cd <project> && scion init .scion/ directory Auto

Per-Agent Start Flow

Step Artifact
scion start <template> "<prompt>" New agent spawned
New git worktree created ../.scion_worktrees/<project>/<agent>
New feature branch created agent/<name> branch
Agent container started Dedicated home + workspace
tmux session created Attachable background session
Agent receives prompt + learns scion CLI Skills registered

Human-in-the-Loop Flow

Step Artifact
Agent reaches WAITING_FOR_INPUT state Status in .gemini-status.json
scion attach <name> User enters tmux session
User provides input Session continues
Ctrl+B D Detach (agent continues in background)
scion send <name> "<message>" Message enqueued for detached agent

Multi-Agent Coordination

Agents coordinate via:

  1. Group messaging through the scion CLI tool they learn
  2. Direct messaging to specific agents
  3. Shared workspace files (each in own worktree)
  4. The model itself decides how to coordinate (no enforced protocol)

Approval Gates

  • No formal approval gates
  • Human-in-the-loop via scion attach (optional, on-demand)
  • Status WAITING_FOR_INPUT signals when agent needs human
06

Memory Context

Scion (GCP) — Memory & Context

State Architecture

  • Local: SQLite store (pkg/store/) for agent state, projects, templates
  • Hub mode: Centralized API + database (PostgreSQL or equivalent)
  • GCS or Local storage: For templates and artifacts in Hub mode
  • Git worktrees: Each agent's code changes persist in their own feature branch

Agent Status State Machine

Each agent writes its status to /home/gemini/.gemini-status.json:

  • STARTING
  • THINKING
  • EXECUTING
  • WAITING_FOR_INPUT (trigger for human-in-the-loop)
  • COMPLETED
  • ERROR

This is operational memory (for coordination), not conversational memory.

Context per Agent

  • Each agent has dedicated /home/gemini directory (isolated)
  • Own credentials, config, and shell history
  • Workspace mounted at /workspace (git worktree — isolated per agent)
  • No shared memory between agents by default

Cross-Session Handoff

  • Agents persist via tmux sessions — can be detached and reattached
  • scion resume <name> restarts a stopped agent
  • scion send <name> "..." enqueues messages for detached agents
  • Git worktrees persist the code state across restarts

No Conversational Memory System

Scion does not implement conversational memory or context compaction. Each agent harness (Claude Code, Gemini CLI) manages its own context window. Scion provides the container + git isolation substrate.

07

Orchestration

Scion (GCP) — Orchestration

Multi-Agent

Yes — Scion is purpose-built for multi-agent parallel execution. Multiple agents run concurrently as independent containerized processes.

Orchestration Pattern

Swarm / emergent:

  • No prescribed coordination protocol
  • Agents learn the scion CLI tool and coordinate via natural language messaging
  • Group messaging and direct messaging available
  • Models decide how to coordinate themselves

Isolation Mechanism

Container + git worktree:

  • Each agent in own container with separated credentials, config, and home directory
  • Each agent on dedicated feature branch in git worktree (../.scion_worktrees/<project>/<agent>)
  • Runtime options: Docker, Podman, Apple Container, Kubernetes

Execution Mode

Event-driven / attach-detach:

  • Agents run in background tmux sessions
  • Human-in-the-loop via scion attach when WAITING_FOR_INPUT
  • scion send for async message delivery
  • Scheduled commands via scion schedule

Multi-Model

Yes — harness-agnostic design:

  • Gemini CLI harness
  • Claude Code harness
  • Generic harness (any CLI)
  • Different agents in same scion project can use different harnesses/models
  • Templates specify which harness + system prompt per role

Multi-Runtime

Named runtime profiles in .scion/settings.json:

  • Local Docker/Podman/Apple Container
  • Remote K8s (via Hub + Runtime Broker)

Consensus Mechanism

None explicit. Emergent coordination through shared CLI messaging.

Hub-Based Orchestration

Hub = central state server. Multiple Runtime Brokers register with Hub and accept agent placement. Hub provides project/template/user management + multi-machine visibility.

08

Ui Cli Surface

Scion (GCP) — UI & CLI Surface

CLI Binary (scion)

  • Go binary installed via go install github.com/GoogleCloudPlatform/scion/cmd/scion@latest
  • Rich subcommand surface (30+ commands)

Key commands:

  • scion start, scion list, scion attach, scion message, scion logs
  • scion stop, scion resume, scion delete
  • scion templates, scion template import
  • scion hub * — Hub management
  • scion broker * — Runtime broker
  • scion schedule — Scheduled commands
  • scion doctor — Diagnostics
  • scion whoami, scion version

Tmux Integration

  • Agents run in tmux sessions
  • scion attach <name> enters the tmux session
  • Ctrl+B D to detach (agent continues running)
  • Full interactive terminal access when attached

Web Dashboard (Hub Mode)

  • React + Vite frontend (web/)
  • Available when Hub is deployed
  • Agent status visibility, project management, template management
  • Node.js/Koa backend-for-frontend (BFF)

Observability

  • OTEL (OpenTelemetry) telemetry — normalized across all harnesses
  • Logging and metrics for agent swarms
  • Agent status file (.gemini-status.json) per agent
  • scion logs <name> for agent log access
  • Status states: STARTING/THINKING/EXECUTING/WAITING_FOR_INPUT/COMPLETED/ERROR

Demo

"Relics of Athenaeum" — game where agents collaborate to solve puzzles, demonstrating the coordination model. Includes visualization of agent communication telemetry.

IDE Integration

None native. DevContainer support not mentioned (unlike agentbox).

Related frameworks

same archetype · same primary tool · same memory type

CodeMachine CLI ★ 2.5k

JavaScript-DSL workflow orchestration engine that captures repeatable AI coding agent workflows with tracks, condition groups,…

Codexia ★ 690

Tauri desktop app providing visual control plane, task scheduler, git worktree manager, and headless REST API for Codex CLI +…

Kagan ★ 88

Kanban TUI for AI coding agents with a structurally enforced human review gate (REVIEW → DONE cannot be automated) — one git…

oh-my-claudecode (Yeachan-Heo) ★ 35k

Zero-learning-curve teams-first multi-agent orchestration for Claude Code with autopilot (6-phase lifecycle), ralph (PRD-driven…

Paseo ★ 6.8k

Multi-provider AI coding agent orchestration daemon with cross-device access (phone/desktop/CLI) and git worktree isolation.

CCG Workflow ★ 5.4k

Routes Claude + Codex + Gemini to task-appropriate collaboration strategies (direct-fix through full-collaborate) with hook-based…