[← Home]

####  ##### #   #
#   # #     #   #
#   # ###   #   #
#   # #      # #
####  #####   #

Developer Guide

LastDB is in alpha. The product you install from Homebrew is a headless local daemon — apps talk to it over a Unix socket.

Data is never accessed as a free-for-all dump. Queries and mutations go through the node; first-party apps (Brain, Kanban, …) are the usual interface. Building a new app uses the same socket contract.

You do not build here by hand-rolling scaffolding. Install Last Stack (LastDB + apps + agent skills), describe the feature to your agent, and the loop below carries it to shipped. Everything further down is the contract that loop runs on.

[Install LastDB →] [Apps] — install first if you do not have a node yet.

BUILD WITH YOUR AGENT the loop, end to end

This is the intended developer workflow. You state what you want; your agent does the scoping, the cards, and the PRs. You make the decisions.

1. INSTALL LAST STACK

git clone https://github.com/EdgeVector/last-stack ~/.last-stack && ~/.last-stack/setup
~/.last-stack/bin/last-stack-install-apps

One clone installs LastDB, the apps (Brain, Kanban, Situations, …), and the agent skills + scheduled routines that run the loop below.

2. TELL YOUR AGENT THE FEATURE

"ship this feature: search results should show a snippet of the match"

Plain language, to Claude Code or any agent with the skills installed. The ship-feature skill scopes the work, asks all its open questions in one batch, then files it: a North Star with a terminal proof, a milestone, and PR-sized cards on the board.

3. SHIP IT

Agents claim cards from the board and drive each one in an isolated worktree to a merged PR. A card reaches done only when its outcome is proven — not when the diff exists.

Decisions land in Brain; status lands on the board. The kanban-agent, wait-merge, and close-out skills do the driving.

4. WATCH KANBAN

kanban list
kanban list --column doing
kanban show <slug>

The board is the live status of your feature. Cards flow todo → doing → done as agents pick them up, and a blocked card says what it waits on.

5. MORNING SYNC TO UNBLOCK

"morning sync"

Once a day, the morning-sync skill surfaces the short list of decisions only you can make, each with context and a recommendation. Answer them: every answer is written to Brain and moves cards on the board. That is the whole management surface.

The human-and-agent daily loop in more detail: How to use it.

NODE QUICK START the database on its own

1. INSTALL

Use the home-page one-liner (Last Stack installs LastDB + apps). Database only:

brew install edgevector/lastdb/lastdb
brew services start lastdb

Full copy-paste path: Home → Install.

2. CONFIRM THE NODE

curl -s --unix-socket ~/.lastdb/data/folddb.sock http://localhost/health
lastdb status
lastdb --version
lastdbd --version

Expect {"status":"ok"}. Socket: ~/.lastdb/data/folddb.sock. Health path is /health (not /api/health). TCP :9001 is retired. Paste blocks omit # comments (macOS zsh interactive default).

3. USE AN APP (OR THE SOCKET)

brain init --grant-consent
brain concept new local-search --title "Local search" --body "Embeddings stay on this machine."
brain ask "what did I note about search?"
curl -s --unix-socket ~/.lastdb/data/folddb.sock http://localhost/api/status

Apps are the happy path. Building a new app: talk HTTP to the same socket (query / mutation / schemas). Last line is raw daemon status.

WHAT HOMEBREW SHIPS

INCLUDED

lastdbd — semantic daemon (store, index, app identity, sync when connected).
lastdb — tiny control CLI (status, connect, …).
Socket API for apps over ~/.lastdb/data/folddb.sock.

NOT INCLUDED

No desktop UI, no DMG, no built-in file-ingestion product surface. Older docs that mention lastdb ingest or /api/ingestion/* describe a retired full-node path — not the Homebrew install.

SOCKET API what apps actually call

All examples use the owner Unix socket. Prefer first-party CLIs unless you are building a new app.

HEALTH

curl -s --unix-socket ~/.lastdb/data/folddb.sock \
  http://localhost/health

Expect {"status":"ok"}.

STATUS

curl -s --unix-socket ~/.lastdb/data/folddb.sock \
  http://localhost/api/status

Process / data-dir / sync summary.

SCHEMAS

curl -s --unix-socket ~/.lastdb/data/folddb.sock \
  http://localhost/api/schemas

List schemas known to this node.

QUERY

curl -s --unix-socket ~/.lastdb/data/folddb.sock \
  -X POST http://localhost/api/query \
  -H "Content-Type: application/json" \
  -d '{"schema_name":"concept","limit":5}'

Structured query. Apps also use /api/mutation for writes (POST).

Exact request shapes evolve with the node; treat first-party apps and the TypeScript app SDK as the stable surface when in doubt. See Apps.

CLI SURFACE

LASTDB (Homebrew)

lastdb status
lastdb --version
lastdbd --version
lastdb connect
brew services start lastdb
brew services restart lastdb

Local use needs no account. lastdb connect is optional — joins an existing account for multi-device cloud backup/sync. App workflows live in app CLIs.

APPS

brain init --grant-consent
brain concept new <slug> --title "…" --body "…"
brain ask "…"
brain mcp

kanban init
kanban list
kanban add <slug> --title "…"
kanban mcp

situations list
situations init

Full catalog: Apps. Daily loop: How to use it.