Skip to content
forgeprintPublic

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Evomem

Open-source, AI-ready memory infrastructure. Local-first: one static Go binary with no runtime dependencies, a local SQLite store, and a Model Context Protocol server so coding agents can search and recall project context.

Layout

apps/web, apps/mobile   the Flutter and web clients
core/api, core/mcp      the HTTP entrypoint and the MCP server
shared/models           the data model
shared/database         the SQLite store
docs                    the plan and the decision records

Using it from a coding agent

claude mcp add evomem -- /absolute/path/to/evomem mcp

Four tools read — search_notes, get_note, get_project_context, list_projects — and propose_note suggests one. Nothing an agent proposes is remembered until a person accepts it:

evomem review                 # what an agent suggested
evomem review -accept <id>    # store it as a note

See docs/mcp.md.

Ingesting from elsewhere

evomem serve

POST /ingest for Apple Shortcuts and anything else, plus Telegram and Jira webhook endpoints. Each needs its own secret in the environment, and an endpoint whose secret is unset is not served. See docs/api.md.

Syncing and archiving

evomem sync -init-remote   # create the mirror's schema
evomem sync                # push changes every five minutes
evomem archive -dry-run    # what would be thinned out

One-directional: the local file is the authority and PostgreSQL is a mirror. Archiving holds back anything not yet synced. See docs/sync.md.

Running it continuously

cp .env.example .env     # fill in three secrets
docker compose up -d

The web app on http://localhost:8080, the server on http://localhost:8787, PostgreSQL beside them — all published on loopback. The server keeps its notes in PostgreSQL; the phone keeps SQLite so it works with no network and pushes one way into the server (ADR-0028). The command line and evomem mcp still use a file, so the binary stays one thing with no runtime.

docs/docker.md has the rest.

Building

./scripts/build.sh   # dist/evomem, CGO_ENABLED=0
./scripts/test.sh    # gofmt, go vet, go test
./scripts/ci.sh      # everything CI runs

./scripts/test-postgres.sh   # the sync transport and the store, on PostgreSQL

Go 1.26 or newer. Nothing else: dependencies are vendored, so a build needs no network and no module cache.

Contributing

Commits are signed off under the DCO; ./scripts/ci.sh is every check CI runs. See CONTRIBUTING.md, and SECURITY.md for the threat model and how to report a vulnerability privately.

Decisions live in docs/adr. The ones worth knowing before reading the code: ADR-0002 on dependencies, ADR-0009 on third-party content reaching a model, and ADR-0012 on why sync goes one way.

License

Apache License 2.0.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages