{"id":51530760,"url":"https://github.com/rohit-dnath/ramen","last_synced_at":"2026-07-09T02:01:16.380Z","repository":{"id":365314420,"uuid":"1271420288","full_name":"Rohit-Dnath/RAMen","owner":"Rohit-Dnath","description":"RAMen is a fast in-memory data store like Redis, but built for AI: drop-in Redis protocol, native vector search, semantic caching, and a built-in MCP server for agents. Single Go binary, BSD-3.","archived":false,"fork":false,"pushed_at":"2026-07-03T20:19:22.000Z","size":84,"stargazers_count":29,"open_issues_count":18,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-03T21:28:08.922Z","etag":null,"topics":["ai-agents","cache","golang","key-value-store","llm","mcp","mcp-server","redis","redis-alternative","resp","semantic-cache","valkey-alternative-in-memory-database","vector-database","vector-search"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rohit-Dnath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"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":null,"dco":null,"cla":null},"funding":{"github":["Rohit-Dnath"],"buy_me_a_coffee":"rohitdebnath","custom":["https://wise.com/pay/business/rohitdebnath2?utm_source=open_link"]}},"created_at":"2026-06-16T16:38:32.000Z","updated_at":"2026-07-03T20:19:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Rohit-Dnath/RAMen","commit_stats":null,"previous_names":["rohit-dnath/ramen"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rohit-Dnath/RAMen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rohit-Dnath%2FRAMen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rohit-Dnath%2FRAMen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rohit-Dnath%2FRAMen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rohit-Dnath%2FRAMen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rohit-Dnath","download_url":"https://codeload.github.com/Rohit-Dnath/RAMen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rohit-Dnath%2FRAMen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35283905,"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-07-09T02:00:07.329Z","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-agents","cache","golang","key-value-store","llm","mcp","mcp-server","redis","redis-alternative","resp","semantic-cache","valkey-alternative-in-memory-database","vector-database","vector-search"],"created_at":"2026-07-09T02:01:15.656Z","updated_at":"2026-07-09T02:01:16.374Z","avatar_url":"https://github.com/Rohit-Dnath.png","language":"Go","funding_links":["https://github.com/sponsors/Rohit-Dnath","https://buymeacoffee.com/rohitdebnath","https://wise.com/pay/business/rohitdebnath2?utm_source=open_link"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/dfibwwpbl/image/upload/v1781639895/ChatGPT_Image_Jun_17_2026_01_27_59_AM_kmcncj.png\" alt=\"RAMen\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eRAMen\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003eRAM + ramen. In memory, and fast to spin up.\u003c/b\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Rohit-Dnath/RAMen/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/Rohit-Dnath/RAMen/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/status-V1%20%2B%20V2%20preview-orange\" alt=\"status\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/go-1.25-00ADD8\" alt=\"go\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-BSD--3--Clause-blue\" alt=\"license\"\u003e\n  \u003ca href=\"https://wise.com/pay/business/rohitdebnath2?utm_source=open_link\"\u003e\u003cimg src=\"https://img.shields.io/badge/support-RAMen-9FE870?logo=wise\u0026logoColor=163300\u0026labelColor=163300\" alt=\"Support RAMen\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Rohit-Dnath/RAMen/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Rohit-Dnath/RAMen?style=social\" alt=\"stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Rohit-Dnath/RAMen/labels/good%20first%20issue\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/Rohit-Dnath/RAMen/good%20first%20issue?color=7057ff\u0026label=good%20first%20issues\" alt=\"good first issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Rohit-Dnath/RAMen/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/Rohit-Dnath/RAMen?color=008672\" alt=\"open issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Rohit-Dnath/RAMen/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/Rohit-Dnath/RAMen?color=orange\" alt=\"contributors\"\u003e\u003c/a\u003e\n  \u003ca href=\"CONTRIBUTING.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen\" alt=\"PRs welcome\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nRAMen is a fast in-memory data store, like Redis, but built for AI apps and AI agents.\n\nIt does three things:\n\n1. It works as a drop-in cache. It speaks the same protocol as Redis, so your existing Redis client and code keep working with no changes.\n2. It can store and search vectors, and it can cache AI answers by meaning. So if two prompts mean the same thing, RAMen can return the saved answer instead of calling the model again. That saves you money.\n3. It has a built-in MCP server. That means AI agents (like Claude) can read, write, search, and remember data in RAMen directly as a tool. No extra glue code needed.\n\n\u003e Redis was built for app servers. RAMen is built for AI agents.\n\n## Is this a Redis alternative?\n\nYes, for a lot of common use cases. If you use Redis (or Valkey) as a cache or a simple key value store, you can point your app at RAMen instead and it will just work, because RAMen speaks the Redis protocol (RESP2).\n\nWhere RAMen is different:\n\n- It has vector search and a semantic cache built in. With Redis you would need an extra module or extra code for that.\n- It has an MCP server built in, so AI agents can use it as a tool out of the box.\n- It is one small single file (a single binary) with no extra dependencies. Easy to download and run.\n\nWhat RAMen does NOT do yet (so you know what you are getting):\n\n- No clustering, no replication, no failover.\n- No append-only-file durability (it saves snapshots to disk instead).\n- Not tuned to beat Redis or Valkey on raw speed.\n\nSo: great as a Redis-style cache and an AI data layer for one machine. Not yet a replacement for a big production Redis cluster.\n\n## Quick start (the simple version)\n\nYou need [Go](https://go.dev/dl/) installed (version 1.25 or newer). Then run one of these.\n\n### Option 1: install with Go\n\n```bash\ngo install github.com/Rohit-Dnath/RAMen/cmd/ramen@latest\nramen\n```\n\n### Option 2: run with Docker\n\n```bash\ndocker run -p 6379:6379 -p 8080:8080 ghcr.io/rohit-dnath/ramen:latest\n```\n\n### Option 3: build from source\n\n```bash\ngit clone https://github.com/Rohit-Dnath/RAMen\ncd RAMen\ngo run ./cmd/ramen\n```\n\nWhen it starts you will see:\n\n```\nramen: listening on [::]:6379\nramen: dashboard on http://localhost:8080\n```\n\nThat is it. RAMen is now running on port 6379, and a live dashboard is at http://localhost:8080.\n\n## How to use it\n\n### Talk to it like Redis\n\nIf you have `redis-cli` installed, just connect to port 6379:\n\n```bash\nredis-cli -p 6379\n```\n\n```\n\u003e SET hello world\nOK\n\u003e GET hello\n\"world\"\n\u003e EXPIRE hello 60\n(integer) 1\n```\n\nIf you have an app that already uses Redis, point it at RAMen. Usually you only change one setting:\n\n```bash\nexport REDIS_URL=redis://localhost:6379\n```\n\n### Basic commands\n\nThese work just like Redis:\n\n```\nSET user:1 \"Rohit\"          store a value\nGET user:1                  read it back\nINCR visits                 count something\nHSET person name Rohit      store fields under one key\nRPUSH queue job1 job2       a list\nSADD tags go ai             a set\nZADD board 100 alice        a ranked list\nSUBSCRIBE news              listen for messages\nPUBLISH news \"hello\"        send a message\n```\n\nFull list with examples: [docs/commands.md](docs/commands.md).\n\n### Vector search\n\nStore vectors and find the closest ones. Your app gives RAMen the numbers, no API key needed.\n\n```\nVSET docs d1 0.1 0.2 0.9 META \"intro page\"\nVSET docs d2 0.9 0.1 0.0 META \"pricing page\"\nVSEARCH docs 0.1 0.2 0.85 TOPK 1 WITHSCORES\n```\n\n### Semantic cache (save money on AI calls)\n\nCache an AI answer once. Next time a similar question comes in, get the saved answer back instead of paying for another model call.\n\n```\nSCACHE.SET \"What is the capital of France?\" \"Paris\"\nSCACHE.GET \"whats the capital of france\" THRESHOLD 0.9\n\u003e \"Paris\"\n```\n\nThis needs an embeddings provider. It works with a free local [Ollama](https://ollama.com) or with OpenAI. See [Configuration](#configuration).\n\n### Agent memory\n\nLet an AI agent remember things across turns:\n\n```\nREMEMBER session7 user_name Rohit\nRECALL session7 user_name\n\u003e \"Rohit\"\n```\n\n### Use it from Claude (MCP)\n\nStart RAMen, then add this to your Claude config and Claude can use RAMen as a tool:\n\n```json\n{\n  \"mcpServers\": {\n    \"ramen\": {\n      \"command\": \"ramen\",\n      \"args\": [\"mcp\", \"--addr\", \"localhost:6379\"]\n    }\n  }\n}\n```\n\nStep by step guide: [docs/mcp.md](docs/mcp.md).\n\n### The dashboard\n\nOpen http://localhost:8080 in your browser while RAMen is running. You will see your keys, memory use, and the cache hit rate, updating live. Turn it off with `--dashboard-addr \"\"`.\n\n## RAMen vs Redis vs Valkey\n\n| | RAMen | Redis | Valkey |\n|---|---|---|---|\n| Redis protocol (RESP2) | Yes | Yes | Yes |\n| Works with existing Redis clients | Yes (common commands) | Yes | Yes |\n| One single binary, no setup | Yes | No | No |\n| Vector search built in | Yes | Needs a module | Needs a module |\n| Semantic cache command | Yes | No | No |\n| MCP server for AI agents | Yes | No | No |\n| Clustering and replication | Not yet | Yes | Yes |\n| Best raw speed on one node | Good | Best | Best |\n| License | BSD-3-Clause | AGPL / RSAL (since 2024) | BSD-3-Clause |\n\n## Configuration\n\nEvery flag also has a `RAMEN_*` environment variable.\n\n| Flag | Env var | Default | What it does |\n|---|---|---|---|\n| `--addr` | `RAMEN_ADDR` | `:6379` | Port to listen on |\n| `--auth` | `RAMEN_AUTH` | empty | Require a password (empty means no password) |\n| `--snapshot-path` | `RAMEN_SNAPSHOT_PATH` | `ramen.snapshot` | Where to save data (empty turns saving off) |\n| `--snapshot-interval` | `RAMEN_SNAPSHOT_INTERVAL` | `60s` | How often to save to disk |\n| `--dashboard-addr` | `RAMEN_DASHBOARD_ADDR` | `:8080` | Dashboard port (empty turns it off) |\n| `RAMEN_EMBED_URL` | `RAMEN_EMBED_URL` | empty | Embeddings endpoint for the semantic cache |\n| `RAMEN_EMBED_MODEL` | `RAMEN_EMBED_MODEL` | `text-embedding-3-small` | Which embedding model to use |\n| `RAMEN_EMBED_KEY` | `RAMEN_EMBED_KEY` | empty | API key for the embeddings endpoint |\n\nTurn on the semantic cache for free with a local Ollama:\n\n```bash\nollama pull nomic-embed-text\nexport RAMEN_EMBED_URL=http://localhost:11434/v1/embeddings\nexport RAMEN_EMBED_MODEL=nomic-embed-text\nramen\n```\n\nOr use OpenAI:\n\n```bash\nexport RAMEN_EMBED_URL=https://api.openai.com/v1/embeddings\nexport RAMEN_EMBED_MODEL=text-embedding-3-small\nexport RAMEN_EMBED_KEY=sk-your-key\nramen\n```\n\n## Roadmap\n\n- Done: core Redis commands, strings, hashes, lists, sets, sorted sets, expiry, pub/sub, snapshot saving.\n- Done: vector store, semantic cache, agent memory, MCP server, dashboard.\n- Next: replication, stronger durability, clustering, faster vector index (HNSW).\n\n## Support the project\n\nRAMen is free and open source, and it always will be. If it saves you time or you would like to help fund its development, you can support the work directly. It genuinely helps keep the project moving.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://wise.com/pay/business/rohitdebnath2?utm_source=open_link\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Support%20RAMen%20via%20Wise-9FE870?style=for-the-badge\u0026logo=wise\u0026logoColor=163300\u0026labelColor=9FE870\" alt=\"Support RAMen via Wise\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nNot in a position to chip in? A star, a share, or a bug report helps just as much. Thank you.\n\n## Contributing\n\nRAMen is open source and very new, which means this is a great time to get involved and make a real difference. Beginners are welcome. You do not need to be a Go expert.\n\nGood first things to help with:\n\n- Try it out and report bugs or confusing parts.\n- Improve the docs or add examples.\n- Add a missing Redis command.\n- Test RAMen with your favourite Redis client and tell us what worked.\n\n### Good first issues\n\nNew here? These are small, self-contained, and well described. Pick one, comment to claim it, and you are off.\n\n- [**Good first issues**](https://github.com/Rohit-Dnath/RAMen/labels/good%20first%20issue) beginner-friendly, clearly scoped tasks.\n- [**Help wanted**](https://github.com/Rohit-Dnath/RAMen/labels/help%20wanted) things we would love a hand with.\n- [**All open issues**](https://github.com/Rohit-Dnath/RAMen/issues) the full list.\n\nMost open issues are missing Redis commands with the exact files and acceptance criteria already written down, so you can follow an existing handler as a template and open a PR the same day.\n\nThen read the [Contributing Guide](CONTRIBUTING.md) to get started. If you are not sure where to begin, open an issue and say hi. Stars and shares also help a lot.\n\n## Contributors\n\nThanks to these wonderful people who help make RAMen better.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/Rohit-Dnath\"\u003e\n        \u003cimg src=\"https://avatars.githubusercontent.com/u/136178612?v=4\" width=\"90\" height=\"90\" style=\"border-radius:50%\" alt=\"Rohit-Dnath\"\u003e\u003cbr\u003e\n        \u003csub\u003e\u003cb\u003eRohit-Dnath\u003c/b\u003e\u003c/sub\u003e\u003cbr\u003e\n        \u003cimg src=\"https://img.shields.io/badge/%F0%9F%8D%9C%20Creator%20%26%20Maintainer-E8590C?style=for-the-badge\u0026labelColor=E8590C\" alt=\"Creator \u0026 Maintainer\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/bayrambartu\"\u003e\n        \u003cimg src=\"https://avatars.githubusercontent.com/u/113308882?v=4\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"bayrambartu\"\u003e\u003cbr\u003e\n        \u003csub\u003e\u003cb\u003ebayrambartu\u003c/b\u003e\u003c/sub\u003e\u003cbr\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Contributor-495057?style=for-the-badge\u0026labelColor=495057\" alt=\"Contributor\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/tchalikanti1705\"\u003e\n        \u003cimg src=\"https://avatars.githubusercontent.com/u/198486914?v=4\" width=\"80\" height=\"80\" style=\"border-radius:50%\" alt=\"tchalikanti1705\"\u003e\u003cbr\u003e\n        \u003csub\u003e\u003cb\u003etchalikanti1705\u003c/b\u003e\u003c/sub\u003e\u003cbr\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Contributor-495057?style=for-the-badge\u0026labelColor=495057\" alt=\"Contributor\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Star History\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.star-history.com/#Rohit-Dnath/RAMen\u0026Date\"\u003e\n    \u003cimg src=\"assets/star-history.png\" alt=\"RAMen Star History Chart\" width=\"80%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\n[BSD-3-Clause](LICENSE). This is the same license family Redis used before 2024, and the one Valkey uses. Simple and permissive, no surprises.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohit-dnath%2Framen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frohit-dnath%2Framen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frohit-dnath%2Framen/lists"}