Metadata-Version: 2.4
Name: discord-os
Version: 0.5.7
Summary: Discord OS: Discord is the harness UI for local agent work. Artifacts are Discord objects (snowflake IDs).
Author: Discord OS contributors
License: MIT
Project-URL: Homepage, https://github.com/professorpalmer/discord-os
Project-URL: Documentation, https://github.com/professorpalmer/discord-os/blob/master/README.md
Project-URL: Changelog, https://github.com/professorpalmer/discord-os/blob/master/CHANGELOG.md
Project-URL: Attribution-SaseQ, https://github.com/SaseQ/discord-mcp
Project-URL: Attribution-BrainDAO, https://github.com/BrainDAO/mcp-discord
Keywords: discord,discord-os,mcp,puppetmaster,agent,cli
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Provides-Extra: interactions
Requires-Dist: PyNaCl>=1.5; extra == "interactions"
Dynamic: license-file

# Discord OS

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

```bash
pip install discord-os
```

Your bot, on your machine. No hosted fleet. Leave the host running; turn work on and off from Discord.

Workers need [Puppetmaster](https://pypi.org/project/puppetmaster-ai/) too:

```bash
pip install discord-os puppetmaster-ai
```

The `agent-discord` command still works. Full setup, Discord verbs, and docs live in the repo — PyPI does not host those pages.

- [README](https://github.com/professorpalmer/discord-os/blob/master/README.md)
- [Setup](https://github.com/professorpalmer/discord-os/blob/master/docs/setup/README.md)
- [Docs index](https://github.com/professorpalmer/discord-os/blob/master/docs/README.md)
- [AGENTS.md](https://github.com/professorpalmer/discord-os/blob/master/AGENTS.md)
- [Changelog](https://github.com/professorpalmer/discord-os/blob/master/CHANGELOG.md)

![HOST card and a finished job thread](https://raw.githubusercontent.com/professorpalmer/discord-os/master/docs/screenshots/discord-host.png)

![Two asks at once, live thinking card](https://raw.githubusercontent.com/professorpalmer/discord-os/master/docs/screenshots/discord-jobs.png)

## First run

Once, in a browser: [Discord Developer Portal](https://discord.com/developers/applications) → New Application → **Bot** → Reset Token (`DISCORD_BOT_TOKEN`) → enable **Message Content Intent** → General Information → Application ID (`DISCORD_APPLICATION_ID`). Copy a private channel ID.

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

```bash
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**. After that, `discord-os add` and in-channel `bind` — not a wizard. See [docs/setup](https://github.com/professorpalmer/discord-os/blob/master/docs/setup/README.md).

MIT — [LICENSE](https://github.com/professorpalmer/discord-os/blob/master/LICENSE).
