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.2.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.2-py3-none-any.whl (2.3 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: creatureos-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 e8d0ceda2dc69c669396758c160bc8c2a4fae3799cdf959d4f2f0d3571f0e783
MD5 d552e3a390cbea2dc4a05789302bbe4d
BLAKE2b-256 d963a764f6388d4350d4b186b0b2d1fc7514f9b8f0e916c481ad73fa4462f85c

See more details on using hashes here.

Provenance

The following attestation bundles were made for creatureos-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: creatureos-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 51ca21e5315e03a2341905da5cf1d71063b6a35b92daa0f84dde3b7193392975
MD5 ce599e8c502d2055596e164e6c5f5862
BLAKE2b-256 396e38f4721ff56f5155fb84a227800df397861797c2006b83dce5a007735806

See more details on using hashes here.

Provenance

The following attestation bundles were made for creatureos-0.1.2-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