Prerequisites:
- Go 1.24.6 or newer in the 1.24 series
makejqfor the E2E test script
Common commands:
make deps
make build
make unit
make test
make installUse a project-local data directory when testing manually:
MNEMON_DATA_DIR=.mnemon-dev ./mnemon store create default
MNEMON_DATA_DIR=.mnemon-dev ./mnemon remember --no-diff "Local development memory" --cat fact --imp 3
MNEMON_DATA_DIR=.mnemon-dev ./mnemon recall "development memory"Create a local environment file:
cp .env.example .envStart a shell inside the Go development image:
make compose-devInside the container:
make build
make testBuild the runtime image:
make docker-buildRun one command with persistent data mounted at /mnemon:
docker run --rm \
-v mnemon-data:/mnemon \
--env-file .env \
mnemon-dev/mnemon:dev statusOr use Docker Compose:
cp .env.example .env
make compose-up
docker compose run --rm mnemon recall "query"
make compose-downMnemon works without embeddings. To use Ollama-backed vector search in the Compose environment:
docker compose --profile embeddings up -d ollama
docker compose exec ollama ollama pull nomic-embed-text
docker compose run --rm mnemon embed "hello"The relevant environment variables are:
MNEMON_EMBED_ENDPOINTMNEMON_EMBED_MODEL
For host-based Ollama, set MNEMON_EMBED_ENDPOINT=http://host.docker.internal:11434 on Docker Desktop, or use the host gateway address for Linux deployments.
Tagged releases are handled by GoReleaser through .github/workflows/release.yml.
Required repository secret:
HOMEBREW_TAP_TOKEN, only needed for publishing the Homebrew tap
Create a local snapshot build without publishing:
make release-snapshot