← All tools

professorpalmer/discord-os

Popularity 65 Updated Development & Build

Discord is the screen. This Mac is the computer: SQLite lineage, concurrency, Puppetmaster workers. Artifacts are Discord snowflakes. Phone is the remote.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

Discord OS

Discord is the screen. This process is the computer. Your phone is the remote.

SQLite is the database (tasks, runs, events, artifacts, execution DAG). Up to eight live jobs by default (DISCORDOSMAXLIVE, tunable). Analyze can overlap; implement/swarm writes serialize per checkout. Real ceilings are OpenRouter RPM/TPM/spend, machine CPU/RAM, and Discord limits — not a hard "two cooks" product voice. Puppetmaster runs the workers on this Mac (OpenRouter/agentic only — no Cursor). Artifacts are channel / message / attachment plus sha256, never a CDN URL. Intake is REST. Gateway exists so On/Off buttons work. No hosted fleet.

Query the analog map with discord-os map. Dump a run with discord-os lineage.

Public package is discord-os. Repo: professorpalmer/discord-os. The agent-discord command still works.

~/Projects/agent-discord is historical; live checkout is ~/Projects/discord-os.

pip install discord-os

Positioning (share kit)

Discord OS is a shared desk: Discord is the screen, this Mac process is the computer, Puppetmaster cooks on OpenRouter/agentic only. Not a hosted fleet, not computer-use (CU/docker stay parked), not a Discord↔shell paste bot.

| You want | Use | |---|---| | Phone-first On/Off/Ask + job threads on your Mac | Discord OS | | Vendor cowork / computer-use runtime | Elsewhere — see docs/COMPARISON.md | | Thin “message → subprocess → stdout” bridge | A smaller custom bot |

Shared desk in <15 minutes: docs/co-work/shared-desk-demo.md (Pair×2 → desk-pack → dual ask → handoff → overnight brief → gate park). Recipes index: docs/recipes/README.md. Board + brain lakes: docs/co-work/wave5-board-brain-demo.md.

Compare: docs/COMPARISON.md. Policy locks: docs/host/policy.md.

Setup

Once, in a browser: Discord Developer Portal → New Application → Bot → Reset Token (DISCORDBOTTOKEN) → enable Message Content Intent → General Information → Application ID (DISCORDAPPLICATIONID). Copy a private channel ID.

Then on the machine that will do the work (Python 3.11+):

python3 -m venv .venv
source .venv/bin/activate          # Windows: .venv\Scripts\activate
pip install discord-os puppetmaster-ai
export OPENROUTER_API_KEY=...      # never commit
discord-os bootstrap
# put DISCORD_BOT_TOKEN and DISCORD_APPLICATION_ID in .env
discord-os setup --channel-id YOUR_CHANNEL_ID

Open the invite URL, press On. That is the whole first run.

Workflow seams after that — not a wizard: