This repository uses main as the primary branch.
Lilo is a monorepo with:
frontend/: React + Vite + TypeScript + Tailwind + Zustand chat UI.backend/: Hono + TypeScript server that uses the Pi SDK for persistent multi-session chats and streams events to the frontend via SSE.
- Favor small components.
- Put each component in its own file.
- Keep everything organized well into directories.
- Keep runtime/build configuration centralized.
- Backend code should read environment-backed values through
backend/src/shared/config/config.ts; do not readprocess.envdirectly from routes, services, or tools. - Frontend code should read Vite env-backed values through
frontend/src/config/config.ts; do not readimport.meta.envdirectly from components, hooks, stores, or libs. - If a new env var is needed, add it to the appropriate
config.tsfirst, then consume it from there.
- This is an open source project. Avoid committing sensitive or author-specific information, including personal deployment URLs, private Lilo server URLs, workspace names, phone numbers, email addresses, API keys, tokens, or local filesystem details.
- Keep examples, app entitlements, deep-link domains, docs, tests, and defaults generic or configurable. Do not hard-code details from an author's own Lilo setup unless the user explicitly asks for a local-only experiment and the change will not be committed/shared.
The coding agent used in this product is Pi Mono:
- Repository: https://github.com/badlogic/pi-mono
- Pi SDK docs: https://raw.githubusercontent.com/badlogic/pi-mono/refs/heads/main/packages/coding-agent/docs/sdk.md
When changing Pi SDK integration code in this repo, use the Pi SDK docs above as the primary reference for supported session options and APIs.
When asked how a feature is implemented, or to compare Lilo's implementation to Hermes or OpenClaw, consult these docs for details:
- OpenClaw docs: https://docs.openclaw.ai/
- Hermes Agent docs: https://hermes-agent.nousresearch.com/docs
- Never edit
.envdirectly.
From the repo root:
pnpm install
pnpm run dev:backend
pnpm run dev:frontendDefault local URLs:
- Frontend:
http://localhost:5800 - Backend:
http://localhost:8787
Workspace apps should be opened over HTTP via:
http://localhost:8787/workspace/<app-name>
The backend runs Pi sessions through the Pi SDK and translates agent events into SSE events for the frontend.