ShaulLavo/ellie

0

stars

693

commits

TypeScript

primary language

Mar 16, 2026

updated

README

Ellie

Personal AI assistant — a local-first, event-sourced agent platform.

Structure

PathDescription
apps/serverElysia backend (Bun) — agent orchestration, SSE, REST API
apps/webReact frontend (@ellie/web) — chat UI, DB studio
apps/cliGo CLI — authentication, dev workflow
packages/agentAgent loop, tool execution, loop detection
packages/aiLLM adapters, credentials, OAuth
packages/dbSQLite event store, schemas, migrations
packages/envShared environment config
packages/hindsightEpisodic memory — entity extraction, recall, temporal search
packages/schemasValibot schemas shared across packages
packages/tusResumable file upload (tus protocol)

Development

# Start the server (hot-reload)
bun run --hot apps/server/src/server.ts

# Run tests (server + packages only)
bun test --filter './packages/*' --filter './apps/server/*'

Speech

  • STT uses STT_BASE_URL for transcription.
  • ElevenLabs TTS uses ELEVENLABS_API_KEY (or XI_API_KEY).
  • Optional TTS defaults: ELEVENLABS_VOICE_ID, ELEVENLABS_MODEL_ID, TTS_TIMEOUT_MS, TTS_MAX_TEXT_LENGTH.

Architecture

  • Event sourcing: all state changes stored as events in SQLite via EventStore
  • Real-time: SSE streams via RealtimeStore pub/sub
  • Agent loop: message → AgentController → Agent → tool calls → events → SSE → client
  • Memory: episodic memory via Hindsight (entity extraction, temporal recall, embeddings)

Contributors

ShaulLavo

682 commits

claude

11 commits

ShaulLavo/ellie

0

stars

693

commits

TypeScript

primary language

Mar 16, 2026

updated

README

Ellie

Personal AI assistant — a local-first, event-sourced agent platform.

Structure

PathDescription
apps/serverElysia backend (Bun) — agent orchestration, SSE, REST API
apps/webReact frontend (@ellie/web) — chat UI, DB studio
apps/cliGo CLI — authentication, dev workflow
packages/agentAgent loop, tool execution, loop detection
packages/aiLLM adapters, credentials, OAuth
packages/dbSQLite event store, schemas, migrations
packages/envShared environment config
packages/hindsightEpisodic memory — entity extraction, recall, temporal search
packages/schemasValibot schemas shared across packages
packages/tusResumable file upload (tus protocol)

Development

# Start the server (hot-reload)
bun run --hot apps/server/src/server.ts

# Run tests (server + packages only)
bun test --filter './packages/*' --filter './apps/server/*'

Speech

  • STT uses STT_BASE_URL for transcription.
  • ElevenLabs TTS uses ELEVENLABS_API_KEY (or XI_API_KEY).
  • Optional TTS defaults: ELEVENLABS_VOICE_ID, ELEVENLABS_MODEL_ID, TTS_TIMEOUT_MS, TTS_MAX_TEXT_LENGTH.

Architecture

  • Event sourcing: all state changes stored as events in SQLite via EventStore
  • Real-time: SSE streams via RealtimeStore pub/sub
  • Agent loop: message → AgentController → Agent → tool calls → events → SSE → client
  • Memory: episodic memory via Hindsight (entity extraction, temporal recall, embeddings)

Contributors

ShaulLavo

682 commits

claude

11 commits

Languages

TypeScript

86.5%

Go

7.4%

Python

4.0%

Rust

1.3%