Skip to content

For developers

Starfarer is Python (the Starbase, the Satellite program) and plain JavaScript (the Bridge), with no build step for either. The AI runs in Ollama; voice runs on sherpa-onnx and Kokoro.

Page
Architecture how the Starbase, the Bridge and the devices fit together
Writing Modules the Module SDK: tools, decks, settings, the Viewscreen, packaging and signing for Spacedock
The security model what's protected, from whom, and the rules the code enforces
Test, Production and releasing how changes are tried, promoted and released
Contributing running the tests, the house style, and the contributor agreement

The code

Folder
starfarer/core/ the AI: conversations, personas, memory, journals, tools ("hands"), missions, crew, security
starfarer/hub/ the Starbase server (FastAPI): the API, WebSockets, devices, the Viewscreen, Modules
starfarer/bridge/ the Bridge: HTML, CSS and one script per deck
starfarer/voice/ hearing, the AI's voice, wake words, voice ID
starfarer/satellite/ the Satellite program (Satellites, Shuttles, Starships)
starfarer/modelfiles/ the built-in personas' Modelfiles
sdk/ the Module SDK (MIT)
tests/ pytest
docs/ this wiki

Running it from source

python -m venv .venv
.venv/bin/pip install -e ".[dev,voice]"     # Windows: .venv\Scripts\pip ...
.venv/bin/python -m starfarer --open        # the Starbase on http://127.0.0.1:3010
.venv/bin/python -m pytest -q               # the tests

Set STARFARER_HOME to keep a test install's data apart from your own.