Nilo is Oxy's cross-platform workspace for pages, blocks, typed databases, comments, sharing, and real-time collaboration.
| Package | Path | Responsibility |
|---|---|---|
@nilo/app |
apps/app/ |
Expo client for web, iOS, and Android |
@nilo/api |
apps/api/ |
Express API backed by PostgreSQL/Drizzle |
Oxy sessions are handled by @oxy.so/services on the client and
@oxy.so/core/server on the API. Nilo does not store provider credentials or
run inference providers. One-shot product operations use
Nilo -> Oxy -> Kaana; conversations, memory, tools and agents use
Nilo -> Alia -> Oxy -> Kaana. Provider credentials remain solely in
Kaana's encrypted PostgreSQL store, and Nilo never calls Kaana directly.
bun install
cp apps/api/.env.example apps/api/.env
cp apps/app/.env.example apps/app/.env
bun run dev:api
bun run dev:appUse Bun for dependency and script execution.
bun run lint
bun run --filter @nilo/api test
NILO_TEST_DATABASE_URL=postgres://nilo:nilo@127.0.0.1:5439/postgres \
bun run --filter @nilo/api test:pgdb
bun run build:api
EXPO_PUBLIC_API_URL=https://api.example.test bun run build:appThe API requires DATABASE_URL and proves connectivity before listening. The
app requires an explicit HTTPS EXPO_PUBLIC_API_URL for export; no production
API hostname is checked into the bundle. Local development may use an explicit
HTTP origin.
Current deployment facts and blockers are recorded in
docs/deployment.md. Repository rules live in
AGENTS.md.