Getting Started

Requirements

  • Python 3.11+
  • A markdown vault (any folder of .md files 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