Your personal data, one layer, every app.

A self-hosted platform that gives every one of your apps a single shared data service. No more silos, no more exports — query everything from one place.

Self-hosted · Open source · Apache 2.0
The problem

Your data shouldn't live in silos

Every app you install spins up its own database, its own schema, its own little kingdom. You end up with dozens of disconnected copies of your life.

Silo #1

Your YouTube tool has its own database.

Silo #2

Your reading tracker has its own files.

Silo #3

Your bookmarks live in yet another app.

Locus puts one shared layer between your apps and their storage.
Platform

Built for people who want to own their stack.

Every capability is a primitive. Opinionated enough to be useful out of the box, modular enough to vibe-code your own extensions.

Shared data layer

One SQLite-backed API for every app. No more cross-app export hacks.

AI field mapping

Install an app and Locus auto-maps its fields to the shared schema.

Vibe extensions

Modify apps and layouts with natural language. Feels like editing, acts like code.

Per-app permissions

Read-only grants, schema isolation, explicit capabilities. Trust but verify.

Multi-process

Backend + frontend per app with a managed lifecycle. Clean shutdown, clean restart.

MCP + CLI

Query from the terminal. Or wire Claude, Cursor, and any MCP client straight in.

How it works

Three steps. Thirty seconds.

Install the platform, connect your apps, then query across everything with natural language or SQL.

01

Install

Clone the repo and run the installer. It sets up SQLite, creates the data & meta services, and registers the locus CLI globally.

~ 30 seconds · zero dependencies beyond Python 3.11
~ git clone https://github.com/Soyuz0/locus.git
Cloning into 'locus'... done.
~ cd locus && ./install.sh
→ venv ready
→ services registered
→ CLI installed: locus
# done in 28.4s
02

Connect your apps

Install apps from the registry or point at a local path. Locus generates the schema mapping with AI, then spins up the backend and frontend automatically.

AI field mapping · schema isolation · managed processes
~ locus install apps/curator
→ analyzing schema with claude-haiku-4.5
→ mapped 11 fields · 0 conflicts
✓ curator installed
~ locus start curator
→ backend :21010
→ frontend :21011
03

Query everything

Ask natural questions across every app's data. Locus routes through the shared layer with read-only, permission-gated access — no app ever sees another's private fields.

chat · SQL · MCP · REST
~ locus chat "What are my highest rated videos?"
→ scanning curator.videos, chat.messages
 
Your highest-rated video is:
This model is kind of a disaster
by Theo - t3.gg
Score 9/10 Tags informative, entertaining
Apps

Small, sharp tools. One shared layer.

First-party apps bundled with Locus. Each runs its own backend and frontend, but all reach for the same data service.

Curator

YouTube video curation with thumbnails, scores, tags, and AI-surfaced recommendations.

:21010

PDM

Personal data manager. Create any schema from natural language — lists, logs, collections.

:21020

Chat

An AI assistant that reads across every app's data — read-only, permission-gated, per-app.

:21030

Bookmarks

A simple reference app for saving links. Minimal, fast, and queryable from anywhere.

:21040
Architecture

Two services. One dashboard. Any number of apps.

Apps talk to the Data Service for storage and to the Meta Service for lifecycle. You talk to both via CLI or Dashboard.

Curator video curation :21010 PDM data manager :21020 Chat AI assistant :21030 Bookmarks link saver :21040 Data Service SQLite · shared schema :21001 Meta Service app registry · lifecycle :21002 CLI locus … Dashboard :21000 you queries flow here
app / surface core service data flow
CLI

See what's running at a glance.

Same output format across all commands. Terse, parseable, and works over SSH.

locus — zsh — 100×32
~ locus status
Data Service
online
:21001
5 schemas · 23 entries
Meta Service
online
:21002
2 apps running
chat
running
:21030
backend + frontend
curator
running
:21010
backend + frontend
~ locus chat "What are my highest rated videos?"
// scanning curator.videos · 1 result
This model is kind of a disaster
by Theo - t3.gg · Score 9/10 · Tags: informative, entertaining
~
Inside

What you actually see, every day.

A dashboard, a chat, and a curator — all speaking to the same data service underneath.

localhost:21000 · dashboard
Entries
1,284
Apps
4
Uptime
12d
Queries / hr
42
Queries this week
curator · videos847
bookmarks · links312
pdm · reading125
chat · :21030
What are my highest-rated videos?
Your top pick is "This model is kind of a disaster" by Theo - t3.gg. Scored 9/10, tagged informative, entertaining.
// source: curator.videos
Any other 9/10s?
Two more: "Writing a database in 200 lines" and "Local-first is a vibe". Want me to add them to a playlist?
// source: curator.videos · 2 results
curator · :21010
9/10
This model is kind of a disaster
Theo - t3.gg
9/10
Writing a database in 200 lines
Ginger Bill
9/10
Local-first is a vibe
Martin Kleppmann
8/10
The SQLite renaissance
Simon Willison
8/10
How htmx got me to care again
Carson Gross
7/10
Build your own OS (mini)
Low Level Learning
Get started

Up and running in 30 seconds.

Clone, install, and you have a working data layer with two apps installed.

$ git clone https://github.com/Soyuz0/locus.git $ cd locus $ ./install.sh