SpielOS — AI Company Operating System (Open Source)
SpielOS is an open-source AI company operating system: a local harness for running your company with AI agents — durable goals, supervised runs, evidence, approvals, and AI departments that do real business work under one Director loop:
GOAL -> OBSERVE -> DECIDE -> ACT -> EVALUATE
^ |
+----------------------------+
The runtime owns every Goal, Run, approval, evidence record, and notification. Departments are Lego packages: self-contained folders that supply business behavior and never create another loop. Codex, OpenCode, Claude Code, and humans are all clients of the same persisted state. Nothing lives in chat memory — close the session, the company keeps its state on disk.
Install (one line)
pipx install spielos && spielos init
spielos init scaffolds a verified, self-contained harness home into your
current folder — with OpenCode-style progress, an optional starter-department
picker, host detection, and a runtime verification before it
reports success.
Update (one line)
pipx upgrade spielos && spielos refresh
pipx upgrade fetches the newest release; spielos refresh re-vendors the
runtime spine and host adapters into every home on this machine while keeping
your strategy, assets, departments, installed agents, and .spielos/ state.
No pipx yet? The bootstrap installer sets everything up (Python check, pipx, spielos) and runs init in an empty folder automatically:
curl -fsSL https://raw.githubusercontent.com/ShayanSpiel/SpielOS/main/install.sh | sh
spielos init scaffolds a fresh home into your current folder — with
OpenCode-style progress, an optional starter-department picker, host detection,
and a runtime verification before it reports success.
Other install methods
spielos is also published to npm, Homebrew, and as a Docker image. Pick
whichever fits your environment — all of them expose the same spielos CLI
(python3 -m company under the hood), so spielos --version works everywhere:
# npm (global)
npm install -g spielos && spielos --version
# Homebrew
brew install shayanspiel/spielos/spielos && spielos --version
# Docker (ephemeral home mounted from the current directory)
docker run --rm -v "$PWD:/work" -w /work ghcr.io/shayanspiel/spielos:latest --version
The npm package and Homebrew formula are thin shims over the Python runtime, so
Python 3.11+ with the spielos package available is still required on the host
for the npm/Homebrew commands to run.
Fresh means: the spine only — runtime, company skills, OpenCode/Codex
adapters, empty .spielos/ state, opencode.json, AGENTS.md. Zero
departments, zero strategy content. Your company starts empty; the Director
onboards you and capabilities are added when goals need them:
spielos add outbound # install a built-in department
spielos add ./team.sdep # or your own exported bundle
spielos init --department seo # or vendor starters at scaffold time
Scripted and CI runs stay deterministic: add -y/--yes to skip prompts,
--json for a machine-readable receipt; exit code 0 means verified, 1 means
failed with an actionable message.
Departments as products
Every department is one extractable folder: behavior (department.py),
workflows, evals, skills, templates, and tooling live together.
spielos department export outbound --out ./dist # portable .sdep bundle
spielos add ./outbound.sdep # install into a home
spielos add ./outbound.sdep --force # upgrade in place
spielos init --department outbound # scaffold with one starter department
Bundles carry a checksummed manifest plus the department's skills. They never carry strategy, assets, credentials, or run state.
First-class workers
Any workflow compiles into a bounded agent worker (no Director, no routing):
spielos agent compile outbound --workflow social-lead-research --name lead-researcher
Emits the OpenCode agent, Codex TOML, and roster entry from one WorkflowSpec. The worker runs only that workflow, produces only its declared evidence kinds, never edits files; approvals still park in the runtime.
Extracted workers you can run today
The same worker pattern is published standalone — install once into Claude Code, OpenCode, or Codex CLI with one pasted command, and it works immediately:
| Worker | Keyword it owns | Repo | Guide |
|---|---|---|---|
| Lead Researcher | AI lead research agent | Lead-Researcher | Guide |
| AI Keyword Research Agent | AI keyword research automation skill | AI-Keyword-Research-Agent | Guide |
| Social Lead Researcher | LinkedIn lead research agent | Social-Lead-Researcher | Guide |
| Email Outreach Agent | Cold email automation agent | Email-Outreach-Agent | Guide: see repo |
| SEO Audit Agent | Technical SEO audit agent | SEO-Audit-Agent | Guide: see repo |
| Content Production Agent | AI article pipeline agent | Content-Production-Agent | Guide: see repo |
| Analytics Agent | Marketing analytics agent | Analytics-Agent | Guide: see repo |
| SpielOS Workers | 22 automation playbook recipes | SpielOS-Workers | Catalog |
More workers and agent skills: Skills library · Prompt-cache audit tool · full ecosystem on the profile hub.
How a SpielOS-run company is organized
| Concept | Meaning | Docs |
|---|---|---|
| Director | One loop that owns goals, routing, approvals, evidence | How it works |
| Departments | Outbound, Content, Design, Analytics, SEO — Lego packages | Departments |
| Workflows | Repeatable playbooks inside a department | Workflows |
| Agents | Bounded executors — one job each | Agents |
| Skills | Reusable methods an agent follows | Skills |
| Evals | Deterministic rubric evaluation of produced work | Evals |
| Artifacts | Evidence-backed outputs of every run | Artifacts |
| Connections | Access to external systems (Buffer, PostHog, Search Console…) | Connections |
See it running live — the public record of a company operated by this system: spielos.xyz/live
Layout
company/ Python package: runtime spine, evals, connections, CLI
skills/ operator methods (director, department-runner, …)
departments/ LEGO SHELF — each folder is an extractable product
_shared/ cross-department contract + shared methods
<id>/skills/ department-owned methods
design/tools/ render/TTS tooling · design/tokens/ brand tokens
hosts/ adapter sources vendored into homes by init
tests/ → company/tests/ (in-package)
docs/ architecture notes
.spielos/ private runtime state (gitignored; exists only when this
checkout itself operates as a live company home)
Authority for architecture, vocabulary, pursuit semantics, safety rules, and
the owner doctrine: company/README.md.
SpielOS is built in the open by Shayan Spiel. Want these AI departments built, supervised, and measured for your business? Apply — free review · free review · no required call.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spielos-6.3.0.tar.gz.
File metadata
- Download URL: spielos-6.3.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f969c23dbfe00354c0635495816a1aa0e8a2039bacfc1e731330a930368386d1
|
|
| MD5 |
3a3978258dce62257175013693a0801c
|
|
| BLAKE2b-256 |
b5626d3988941c772f6712262349f08ba1879ddddb6f830fdb8a7d8f572235fd
|
Provenance
The following attestation bundles were made for spielos-6.3.0.tar.gz:
Publisher:
publish.yml on ShayanSpiel/SpielOS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spielos-6.3.0.tar.gz -
Subject digest:
f969c23dbfe00354c0635495816a1aa0e8a2039bacfc1e731330a930368386d1 - Sigstore transparency entry: 2604359828
- Sigstore integration time:
-
Permalink:
ShayanSpiel/SpielOS@1b1368b9533a6679cf09d9ab80a55ab5a762fddc -
Branch / Tag:
refs/tags/v6.3.0 - Owner: https://github.com/ShayanSpiel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1b1368b9533a6679cf09d9ab80a55ab5a762fddc -
Trigger Event:
push
-
Statement type:
File details
Details for the file spielos-6.3.0-py3-none-any.whl.
File metadata
- Download URL: spielos-6.3.0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72029dd1f6d56c8ae8c19c2ac6e00c9714f969c48db16748ec096613809aaea9
|
|
| MD5 |
adfdb4c7830221d4efcbc7680526a210
|
|
| BLAKE2b-256 |
2951749a85c4b769573e78fb4e927bc4cf5956721eeff4429f339aa9cbd308c8
|
Provenance
The following attestation bundles were made for spielos-6.3.0-py3-none-any.whl:
Publisher:
publish.yml on ShayanSpiel/SpielOS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spielos-6.3.0-py3-none-any.whl -
Subject digest:
72029dd1f6d56c8ae8c19c2ac6e00c9714f969c48db16748ec096613809aaea9 - Sigstore transparency entry: 2604359852
- Sigstore integration time:
-
Permalink:
ShayanSpiel/SpielOS@1b1368b9533a6679cf09d9ab80a55ab5a762fddc -
Branch / Tag:
refs/tags/v6.3.0 - Owner: https://github.com/ShayanSpiel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1b1368b9533a6679cf09d9ab80a55ab5a762fddc -
Trigger Event:
push
-
Statement type: