Getting Started
Requirements¶
- Python 3.11+
- A markdown vault (any folder of
.mdfiles works) - Optional: Ollama for local LLM, ComfyUI for image generation
Installation¶
git clone https://github.com/anthropics/emptyos.git
cd emptyos
pip install -e .
Configuration¶
Copy the example config and set your vault path:
cp emptyos.example.toml emptyos.toml
Edit emptyos.toml:
[notes]
path = "D:/Your-Vault" # Path to your markdown vault
[server]
port = 9000
First Boot¶
python -m emptyos start
Open http://localhost:9000 — you'll see the home screen with all discovered apps, system stats, and live events.
Key URLs¶
| URL | What |
|---|---|
localhost:9000/ |
Home — app launcher, stats, events |
localhost:9000/topology |
Live dependency graph |
localhost:9000/docs |
API documentation (Swagger) |
localhost:9000/{app}/ |
Any app's UI |
CLI Access¶
eos # System status
eos health # Full health check
eos app list # All apps
eos app info capture # Self-documenting app details
eos capture "my idea" # Quick capture to vault
eos search "cable" # Vault search
The CLI detects a running daemon and proxies via HTTP. No daemon? Falls back to a local kernel.
Create Your First App¶
eos new-app myapp
This generates a manifest + app.py + pages/ directory. Edit apps/myapp/app.py:
class MyApp(BaseApp):
@web_route("GET", "/api/hello")
async def api_hello(self, request):
result = await self.think("Say hello creatively")
return {"message": result}
Restart the server — your app appears in the home screen with an auto-generated UI.
Next Steps¶
- Read the Architecture overview to understand the kernel, capabilities, and event system
- Browse the App Catalog to see what's built in
- Check Plugins to connect external services