{"id":50769896,"url":"https://github.com/danieljustus/symaira-memory","last_synced_at":"2026-06-11T17:03:12.291Z","repository":{"id":364056680,"uuid":"1257257407","full_name":"danieljustus/symaira-memory","owner":"danieljustus","description":"Persistent memory layer and semantic knowledge base for Human-AI symbiosis — MCP server, REST API, and CLI.","archived":false,"fork":false,"pushed_at":"2026-06-11T13:39:24.000Z","size":183,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T14:08:34.015Z","etag":null,"topics":["ai","cli","go","golang","mcp","memory","semantic-search","sqlite"],"latest_commit_sha":null,"homepage":"https://symaira.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danieljustus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-02T14:06:19.000Z","updated_at":"2026-06-11T13:40:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danieljustus/symaira-memory","commit_stats":null,"previous_names":["danieljustus/symaira-memory"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/danieljustus/symaira-memory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljustus%2Fsymaira-memory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljustus%2Fsymaira-memory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljustus%2Fsymaira-memory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljustus%2Fsymaira-memory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danieljustus","download_url":"https://codeload.github.com/danieljustus/symaira-memory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljustus%2Fsymaira-memory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34208761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","go","golang","mcp","memory","semantic-search","sqlite"],"created_at":"2026-06-11T17:03:11.316Z","updated_at":"2026-06-11T17:03:12.280Z","avatar_url":"https://github.com/danieljustus.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Symaira Memory (symaira-memory)\n\n[![CI](https://github.com/danieljustus/symaira-memory/actions/workflows/ci.yml/badge.svg)](https://github.com/danieljustus/symaira-memory/actions/workflows/ci.yml)\n[![Go Version](https://img.shields.io/badge/go-1.26+-00ADD8?logo=go\u0026logoColor=white)](https://go.dev/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003e **Symaira Memory** is a next-generation persistent memory layer, context synchronization engine, and semantic knowledge base built for the **Human-AI Symbiosis Era**.\n\u003e\n\u003e **Repository**: `symaira-memory`\n\u003e **CLI Command**: `symmemory` (analogous to `symaira-vault` and its CLI `symvault`)\n\nIt enables seamless, long-term memory sharing and contextual continuity between humans and their AI counterparts, ensuring intelligence is aligned, retrieved, and expanded across platforms.\n\n---\n\n## The Vision\n\nIn the Human-AI Symbiosis Era, the bottleneck of productivity is no longer compute, but *shared context*. AI agents need to remember past interactions, learn user preferences dynamically, and possess a persistent semantic memory layer that spans across different apps, platforms, and devices.\n\n**Symaira Memory** (`symmemory`) provides the unified infrastructure to make this possible.\n\n---\n\n## Features\n\n- **Persistent local SQLite storage**: All memories store in WAL-mode SQLite under standard XDG paths (`~/.local/share/symmemory/`). No external databases required.\n- **Hybrid semantic search**: Two-layer embedding pipeline. Tries Ollama (`nomic-embed-text`) first for real vector embeddings, falls back to a deterministic word-hash vectorizer (FNV-1a) when Ollama is offline. Search uses pure Go cosine similarity with zero CGO.\n- **Model Context Protocol (MCP) server**: Speak the MCP stdio JSON-RPC 2.0 protocol natively. Plug into Claude Desktop, Cursor, VS Code (Cline / Roo Code / Continue.dev), and any MCP-compatible host.\n- **HTTP REST API daemon**: Run `symmemory serve -p 8787` for browser extensions, dashboards, and remote clients. Protected by JWT authentication.\n- **Web Console**: Built-in browser dashboard served at `http://localhost:8787/` when running `symmemory serve`. Browse, search, and delete memories with a clean UI. No npm, no frameworks, no CDN — fully offline.\n- **Browser extension**: Chrome/Edge/Brave Manifest V3 extension injects memory context into ChatGPT, Claude Web, and Perplexity. Ships in `extension/`.\n- **TUI dashboard**: Terminal-based memory browser and curator built with Bubble Tea and Lip Gloss. Launch with `symmemory console`.\n- **PII Guard**: Automatic regex-based redaction of credit cards, email addresses, and API keys before anything touches disk.\n- **JWT authentication**: Generate and verify signed tokens for REST API access. HMAC-SHA256, configurable expiry and subject.\n- **Memory scoping**: Organize memories by scope (global, project, agent, user, session). Project scope auto-detects `.git` or `.symmemory.toml` in parent directories.\n- **Behavioral rules**: Store procedural instructions for AI agents, automatically injected into prompts. Manage with `symmemory rule`.\n- **Encrypted backup / restore**: Export your SQLite database to compressed `.tar.gz` archives with optional AES-256-GCM encryption.\n- **Extractive dialogue summarizer**: Reduce LLM context cost by 60-70% via keyword-weighted sentence extraction.\n- **Zero CGO**: Pure Go compilation. Builds on any platform without C toolchains. Uses `modernc.org/sqlite` instead of `mattn/go-sqlite3`.\n\n---\n\n## Installation\n\n### Homebrew (macOS / Linux)\n\n```bash\nbrew tap danieljustus/tap\nbrew install symmemory\n```\n\n### From source (go install)\n\n```bash\ngo install github.com/danieljustus/symaira-memory@latest\n```\n\n### From source (build manually)\n\n```bash\ngit clone https://github.com/danieljustus/symaira-memory.git\ncd symaira-memory\ngo build -o symmemory main.go\n./symmemory version\n```\n\n### Prerequisites (for source builds only)\n\n- Go 1.26.3 or later\n- No C compiler required (CGO-free)\n\n---\n\n## Quickstart\n\n```bash\n# Save a fact\nsymmemory set --value \"Alice prefers dark mode in all applications.\" --scope global\n\n# List all stored memories\nsymmemory list\n\n# Search semantically by relevance\nsymmemory search \"preferred theme settings\" --limit 5\n\n# Retrieve a single memory by its ID\nsymmemory get \u003cmemory-id\u003e\n\n# Launch the interactive TUI browser\nsymmemory console\n\n# Start the MCP server (for agent integration)\nsymmemory serve\n\n# Generate an API token for HTTP access\nsymmemory token generate --subject \"my-agent\" --duration 720\n```\n\nFor a full reference of all commands and flags, run `symmemory --help`.\n\n---\n\n## Agent Integration\n\nSymaira Memory speaks the Model Context Protocol (MCP) natively. AI agents connect over stdio JSON-RPC 2.0 and gain four tools: `memory_get`, `memory_set`, `memory_search`, and `memory_list`.\n\nRun `symmemory mcp-config` to print ready-to-paste configuration blocks for Claude Desktop, Cursor, and VS Code. For detailed setup guides covering each host, browser extension installation, and optimal agent system prompts, see [docs/agent-integration.md](docs/agent-integration.md).\n\n---\n\n## Web Console\n\nStart the HTTP daemon and open the built-in dashboard:\n\n```bash\n# Generate a token\nTOKEN=$(symmemory token generate --subject \"console\" --duration 720)\n\n# Start the server\nsymmemory serve -p 8787\n\n# Open http://localhost:8787 in your browser\n# Paste the token in the console to authenticate\n```\n\nThe Web Console provides:\n\n- **Memory browser**: List all memories with scope filtering (global/project/user/agent/session)\n- **Semantic search**: Query memories by natural language with relevance scores\n- **Delete management**: Remove memories with confirmation\n- **Rules viewer**: Read-only list of behavioral rules\n- **Status monitoring**: Real-time connection status\n\nThe dashboard is embedded in the binary via `//go:embed` — no external dependencies, no build step, works fully offline.\n\n---\n\n## Configuration\n\nSettings live in `~/.config/symmemory/config.toml`. Run `symmemory config init` to scaffold a file with all supported fields and their defaults.\n\nEnvironment variables:\n\n| Variable | Default | Purpose |\n| :--- | :--- | :--- |\n| `SYMMEMORY_DB_PATH` | XDG default | Override the SQLite database path |\n| `OLLAMA_API_URL` | `http://localhost:11434/api/embeddings` | Embedding endpoint |\n| `OLLAMA_MODEL` | `nomic-embed-text` | Embedding model |\n| `OPENAI_API_KEY` | none | Cloud LLM fact cleaning fallback |\n| `JWT_SECRET_KEY` | auto-generated | Token signing secret |\n\nPer-project scoping is configured with a `.symmemory.toml` file in your project root. See [docs/configuration.md](docs/configuration.md) for details.\n\n---\n\n## Security \u0026 Privacy\n\n- **PII Guard**: All memory content passes through a regex filter that redacts credit cards, email addresses, and API tokens before storage.\n- **JWT Auth**: REST API endpoints require signed bearer tokens. Tokens are scoped to named subjects with configurable expiration.\n- **Encrypted backups**: Backup archives can be encrypted with AES-256-GCM using a password you provide. Decryption requires the same password.\n- **Local-first**: The database stays on your machine under `~/.local/share/symmemory/`. No telemetry, no external calls (Ollama is optional and local).\n- **Scope isolation**: Memories are isolated by project, agent, user, and session boundaries. Agents only see what their scope permits.\n\n---\n\n## Roadmap\n\n1. **Phase 1**: Repository setup and architecture layout\n2. **Phase 2**: Local memory core and SQLite/Vector storage implementation\n3. **Phase 3**: Model Context Protocol (MCP) Server support and HTTP REST API\n4. **Phase 4**: Multi-device sync and encrypted cloud backup (Symaira Memory Pro) *Next*\n5. **Phase 5**: Web-based Memory Console (Dashboard)\n\nPhases 1 through 3 and Phase 5 are implemented and shipped. Phase 4 is in planning.\n\n---\n\n## Architecture\n\nFor a deep dive into the data pipeline, component design, and scope isolation model, see [docs/architecture.md](docs/architecture.md).\n\n---\n\nCopyright \u0026copy; 2026 Daniel Justus. All rights reserved. Licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljustus%2Fsymaira-memory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanieljustus%2Fsymaira-memory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljustus%2Fsymaira-memory/lists"}