eiDOS is still a flat Python application. The Nix flake wraps that shape instead of turning the repo into an installable Python package.
nix develop
nix run .#dashboard
nix flake checkThe development shell provides Python 3.12 and the current Python dependencies
from Nixpkgs. It puts the repository root on PYTHONPATH so existing imports
continue to work without a .venv. It also provides Claude Code as claude,
pinned by flake.lock through Nixpkgs.
Typed boundary helpers are included in the default shell:
pydanticfor validating external data into typed Python modelspydantic-settingsfor future config/env/TOML settings models
The default shell intentionally excludes the optional embedding stack. Use the
heavier shell when knowledge.embedding_enabled = true or when working on the
ONNX/vector path:
nix develop .#embeddingsnix run .#dashboard must be run from the repository root. It starts the same
dashboard.py supervisor path used by the existing installer:
nix run .#dashboardUse EIDOS_CONFIG to point at a different config file:
EIDOS_CONFIG=config.local.toml nix run .#dashboardnix flake check runs:
claude --versionto prove the pinned Claude Code CLI is available- an import smoke for the core Python packages and eiDOS modules
- imports for
pydanticandpydantic_settings docs/boundary-schemas.jsonmatches the Pydantic boundary models generated byscripts/check_boundary_schemas.py- the existing offline test selector:
python -m pytest -q -m "not slow and not live"Regenerate the checked schema artifact after changing typed boundary models:
nix develop --command python scripts/check_boundary_schemas.py --writeThe flake does not prove host-specific runtime capabilities:
- an OpenAI-compatible local LLM server
- Bluetooth/DBus access for Renogy BLE sensing
- a Chatterbox TTS service for the GLaDOS voice
- downloaded embedding model files under
models/ - the optional ONNX/tokenizers embedding shell unless entered explicitly
- Claude Code login, subscription, network access, or model availability
- Windows PowerShell execution paths
Those remain runtime/operator concerns. The flake only makes the Python interpreter, Python packages, ffmpeg executable, dev shell, dashboard wrapper, and offline tests reproducible.
Do not run pip install, uv sync, curl installers, or other network-mutating
setup from nix develop hooks. Do not install Claude Code with npm from the
shell hook; add or update it through Nixpkgs. Add runtime dependencies through
Nix first. uv is present in the shell for dependency exploration or future
lock maintenance, but it is not the authority for the working runtime. The shell
points uv at the Nix Python and disables uv-managed Python downloads.