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.