Skip to main content

Local-first CreatureOS runtime for persistent Codex creatures

Project description

CreatureOS

CreatureOS is a local-first habitat for persistent Codex creatures.

You install it, start it, and talk to The Keeper. The Keeper helps summon creatures that remember what matters, keep working over time, and learn habits with you.

Quick Start

Preferred path:

Open Codex and type:

install creatureos using pip and spin it up

That is the nicest path because Codex can handle the install, check that the right dependencies are present, and get the server running for you.

Manual path:

pip install creatureos
creatureos serve

Then open:

http://127.0.0.1:404

If you want CreatureOS to work from a specific folder, either:

  • cd into that folder first, then run creatureos serve
  • or use creatureos serve --workspace /path/to/work

What serve Does

creatureos serve handles the normal setup automatically:

  • creates the CreatureOS data directory if needed
  • creates the SQLite database if needed
  • prepares the first-run Keeper state
  • starts the local web app

You do not need to run a separate database setup step first.

What You Need

  • Python 3.10+
  • the codex CLI on your PATH
  • Codex authenticated locally

Optional:

  • Tailscale, if you want private access from another device with --tailscale

A Little More Context

CreatureOS gives you a small habitat of durable creatures that can:

  • chat in a web UI
  • keep memory, notes, and worklists
  • practice habits over time
  • work with local files, attachments, and browser flows
  • keep their own private workshop files and scripts

CreatureOS is intentionally opinionated:

  • chats get fresh Codex threads
  • habit runs stay on a persistent creature thread
  • state lives locally in SQLite
  • creatures use purpose and habits as their authority
  • The Keeper helps shape the rest of the habitat

Useful Startup Variants

Serve on localhost plus the detected Tailscale IPv4:

creatureos serve --tailscale

Force a fresh onboarding environment scan on boot:

creatureos serve --force-scan

Anchor creature file work to a specific directory:

creatureos serve --workspace /path/to/work

Where CreatureOS Stores Things

If you do not pass --workspace, CreatureOS uses your current working directory as the primary working root for creature file work.

The onboarding scan is broader than that. It looks across likely work directories on the machine so The Keeper can form a first impression of the kind of work you do.

Runtime state lives in a user-local data directory:

  • Linux: ~/.local/state/creatureos
  • macOS: ~/Library/Application Support/CreatureOS
  • Windows: %LOCALAPPDATA%\\CreatureOS

You can override that with:

  • creatureos --data-dir /path/to/data serve
  • CREATURE_OS_DATA_DIR
  • CREATURE_OS_DB_PATH

Development

If you are working from a checkout instead of PyPI:

python3 -m pip install -e .

Common commands:

python3 -m py_compile creatureos/cli.py creatureos/web.py creatureos/service.py creatureos/storage.py creatureos/config.py creatureos/codex_cli.py
node --check creatureos/static/creature_os.js
python3 -m pytest

Browser smoke test:

CREATURE_OS_RUN_BROWSER_SMOKE=1 python3 -m pytest -m browser

Storage-focused guardrails:

python3 scripts/check_storage_sql.py
python3 scripts/storage_smoke.py

Advanced Configuration

Environment variables:

  • CREATURE_OS_WORKSPACE_ROOT: primary working root for creature file work
  • CREATURE_OS_DATA_DIR: runtime data directory
  • CREATURE_OS_DB_PATH: SQLite path override
  • CREATURE_OS_HOST: bind host override for single-bind serve mode
  • CREATURE_OS_PUBLIC_HOST: display host used in generated URLs
  • CREATURE_OS_PORT: port override
  • CREATURE_OS_CODEX_BIN: Codex CLI binary
  • CREATURE_OS_MODEL: model override
  • CREATURE_OS_REASONING_EFFORT: reasoning effort override
  • CREATURE_OS_TIMEOUT_SECONDS: read-only run timeout
  • CREATURE_OS_WRITE_TIMEOUT_SECONDS: write-enabled run timeout
  • CREATURE_OS_PYTHON_BIN: Python interpreter used by helper scripts

Notes:

  • serve runs a small supervisor that restarts the worker when core runtime files change.
  • Static JS and CSS are served with revalidation headers to avoid stale browser state.
  • If a server is already running for the same CreatureOS data directory, a second serve exits instead of starting a duplicate process.

Contributing

If you want to work on CreatureOS itself, see CONTRIBUTING.md.

License

CreatureOS is licensed under Apache 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

creatureos-0.1.3.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

creatureos-0.1.3-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

Details for the file creatureos-0.1.3.tar.gz.

File metadata

  • Download URL: creatureos-0.1.3.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for creatureos-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c6f891fa169606c1d4547e67782aaf53c3edb4fdd3f79cd6a7abfb7512fd2f01
MD5 3993f04d01064d3a83ceeb58189faaf3
BLAKE2b-256 85469784eff2e7584f0f964697693599716bd29ed489f6fca574b640f66e011e

See more details on using hashes here.

Provenance

The following attestation bundles were made for creatureos-0.1.3.tar.gz:

Publisher: publish.yml on CreatureOS/creatureos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file creatureos-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: creatureos-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for creatureos-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 509dcdd8ca367daf26cba30e9612dc17e695b54a78d67a0afb0fbf96e8d670ee
MD5 178d0fb5bca3c6a78189c7542e6bb7f1
BLAKE2b-256 ab7a0006558d71ae9ce039e55d19eb82a645dc583be178173df501a9dc6fb361

See more details on using hashes here.

Provenance

The following attestation bundles were made for creatureos-0.1.3-py3-none-any.whl:

Publisher: publish.yml on CreatureOS/creatureos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page