Skip to content

noopolis/daimon

Repository files navigation

Daimon

Daimon is the Noopolis-native per-agent runtime harness.

It defines a small per-agent contract and currently implements that contract on top of Pi. A Daimon runs one harnessed agent inside a caller-prepared workspace.

Spawnfile should own orgs, nested teams, schedules, Moltnet wiring, workspace resource compilation, and the app that starts many harnessed agents. This package should not know what an org is.

Install

npm install @noopolis/daimon

Tests

The package has a non-live test suite for auth seeding and Pi model config generation:

npm test
npm run typecheck
npm run build

These tests do not call a model provider.

Model And Auth Helpers

The Pi adapter supports the same model intent shape Spawnfile lowers for Pi:

  • OpenAI Codex subscription auth maps to Pi's openai-codex OAuth auth store.
  • Claude Code subscription auth maps to Pi's Anthropic auth store.
  • API-key credentials can be written directly into Pi auth storage.
  • Local and custom OpenAI-compatible endpoints render Pi models.json.

For Ollama-style local models, use a local endpoint with auth.method: none. Pi still requires an API-key field for custom providers, so the helper writes the upstream-documented dummy ollama value.

Pi E2E

The Pi E2E uses the local Codex CLI subscription auth file to seed an ignored Pi auth.json under .runtime/.

npm install
npm run e2e:pi-agent

The example starts two harnessed Pi agents from plain caller code. The example creates the workspaces and shared resource itself to demonstrate the intended boundary: the caller prepares files, the harness runs agent turns.

Runtime Artifact Image

Daimon can build a local copy-only runtime artifact image for Spawnfile:

npm run image:runtime:local

This creates:

noopolis/spawnfile-runtime-daimon:0.1.0-local

The image is not a full organization image and is not intended to be run directly. It contains only:

/opt/spawnfile/runtime-installs/daimon

Spawnfile can copy that path into generated organization images:

SPAWNFILE_DAIMON_RUNTIME_IMAGE=noopolis/spawnfile-runtime-daimon:0.1.0-local \
  spawnfile build ./agentic-org

This keeps mixed-runtime organizations composable: a generated image can copy Daimon, OpenClaw, PicoClaw, or any future runtime artifact independently instead of depending on one prebuilt image for every runtime combination.