Getting started

Local quickstart

Install gm-server, start the core engine, and store and recall your first memory locally.

Local quickstart

Run the Meivo engine on one machine, store a memory, retrieve cited context, and remove the test record. Once build dependencies are available, the default runtime's only external fetch is the one-time download of the local embedding model.

1. Install the engine

Prebuilt binaries and Homebrew packaging are not part of the current release surface. Build from the Meivo source tree with a Rust toolchain:

# Run from the greatmemory source repository.
cargo install --locked --path crates/gm-server

This installs gm-server. It is the memory-engine binary; there is no separate client CLI.

2. Start locally

GM_AUDIT_MODE=standalone gm-server serve

The server listens on http://127.0.0.1:7437 and stores its SQLite database and embedding-model cache under ./.greatmemory/.

On first start, the default fastembed adapter downloads and loads BGE-small-en-v1.5. Later starts can run offline from the cached model. For an offline target, pre-stage the model with gm-server warmup; see Engine API security and offline operation.

GM_AUDIT_MODE=standalone is appropriate for this engine-only quickstart: audit events are written to the server log instead of being delivered to the packaged enterprise gateway.

3. Store a memory

In another terminal:

MEMORY_ID=$(
  curl -sS http://127.0.0.1:7437/v1/memories \
    -H 'Content-Type: application/json' \
    -d '{"content":"The staging database runs Postgres 17 with pgvector."}' |
  jq -r '.id'
)

echo "$MEMORY_ID"

The API returns 202 Accepted. Chunking and embedding continue through a bounded background queue, so the memory may not be searchable at the exact instant the response arrives.

4. Recall ranked evidence

curl -sS http://127.0.0.1:7437/v1/search \
  -H 'Content-Type: application/json' \
  -d '{
    "query":"what database does staging use?",
    "mode":"recall",
    "k":8
  }' | jq

Recall combines vector similarity, BM25/full-text search, and any extracted facts. If the first response is empty immediately after ingestion, check the chunk count in the next step and retry after processing completes.

5. Build prompt-ready context

curl -sS http://127.0.0.1:7437/v1/search \
  -H 'Content-Type: application/json' \
  -d '{
    "query":"staging database setup",
    "mode":"context",
    "max_tokens":1000
  }' | jq

Context mode returns a token-budgeted block plus citations. Put that context into the model request made by your application. Meivo remains independent of whether the downstream model is local, open source, or an approved hosted provider.

6. Inspect engine status

curl -sS http://127.0.0.1:7437/v1/stats | jq

The response includes document, chunk, and active-fact counts; process RSS and uptime; and audit backlog/drop counters.

Health and readiness endpoints are:

curl -sS http://127.0.0.1:7437/v1/healthz
curl -sS http://127.0.0.1:7437/v1/readyz

7. Remove the test memory

curl -sS -X DELETE \
  "http://127.0.0.1:7437/v1/memories/$MEMORY_ID"

This removes the stored document and chunks from active retrieval. Facts previously extracted from the memory can remain in graph history with their source link detached, and deployment backups or audit evidence have separate retention. See Data lifecycle before treating one delete call as a full erasure workflow.

Next steps