{"id":35430271,"url":"https://github.com/nicosuave/memex","last_synced_at":"2026-01-22T04:01:23.349Z","repository":{"id":331383804,"uuid":"1126396638","full_name":"nicosuave/memex","owner":"nicosuave","description":"Fast transcript search for humans \u0026 agents. Supports Claude Code, Codex CLI \u0026 OpenCode","archived":false,"fork":false,"pushed_at":"2026-01-21T04:13:23.000Z","size":2235,"stargazers_count":45,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-21T16:50:07.134Z","etag":null,"topics":["bm25","claude-code","codex-cli","hybrid-search","rag","tantivy"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/nicosuave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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}},"created_at":"2026-01-01T20:32:00.000Z","updated_at":"2026-01-21T12:20:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nicosuave/memex","commit_stats":null,"previous_names":["nicosuave/automem"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/nicosuave/memex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicosuave%2Fmemex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicosuave%2Fmemex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicosuave%2Fmemex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicosuave%2Fmemex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicosuave","download_url":"https://codeload.github.com/nicosuave/memex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicosuave%2Fmemex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28653625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["bm25","claude-code","codex-cli","hybrid-search","rag","tantivy"],"created_at":"2026-01-02T20:29:19.267Z","updated_at":"2026-01-22T04:01:23.344Z","avatar_url":"https://github.com/nicosuave.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# memex\n\nFast local history search for Claude, Codex CLI \u0026 OpenCode logs. Uses BM-25 and optionally embeds your transcripts locally for hybrid search.\n\nMostly intended for agents to use via skill. The intended workflow is to ask agent about a previous session \u0026 then the agent can narrow things down \u0026 retrieve history as needed.\n\nIncludes a TUI for browsing, finding and resuming both agent CLI sessions.\n\n![memex tui](docs/tui.png?raw=1\u0026v=2)\n\n## Install\n```bash\nbrew install nicosuave/tap/memex\n```\n\nOr\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/nicosuave/memex/main/scripts/setup.sh | sh\n```\n\nOr (from the [AUR](https://aur.archlinux.org/packages/memex) on Arch Linux):\n\n```bash\nparu -S memex\n```\n\nOr (with [Nix](https://nixos.org/)):\n\n```bash\nnix run github:nicosuave/memex\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eNix development and advanced configuration\u003c/summary\u003e\n\n**Development shell:**\n\n```bash\nnix develop\n```\n\n\u003e **Note:** No binary cache is configured, so first builds compile from source.\n\n**NixOS service:**\n\nEnable background indexing with the provided module:\n\n```nix\n{\n  inputs.memex.url = \"github:nicosuave/memex\";\n\n  outputs = { nixpkgs, memex, ... }: {\n    nixosConfigurations.default = nixpkgs.lib.nixosSystem {\n      modules = [\n        memex.nixosModules.default\n        {\n          services.memex = {\n            enable = true;\n            continuous = true; # Run as a daemon (optional)\n          };\n        }\n      ];\n    };\n  };\n}\n```\n\n**Home Manager:**\n\nConfigure memex declaratively (generates `~/.memex/config.toml`):\n\n```nix\n{\n  inputs.memex.url = \"github:nicosuave/memex\";\n\n  outputs = { memex, ... }: {\n    # Inside your Home Manager configuration\n    modules = [\n      memex.homeManagerModules.default\n      {\n        programs.memex = {\n          enable = true;\n          settings = {\n            embeddings = true;\n            model = \"minilm\";\n            auto_index_on_search = true;\n            index_service_interval = 3600;\n          };\n        };\n      }\n    ];\n  };\n}\n```\n\n\u003c/details\u003e\n\nThen run setup to install the skill/prompt:\n\n```bash\nmemex setup\n```\n\nRestart Claude/Codex after setup.\n\n## Quickstart\n\nIndex (incremental):\n```\nmemex index\n```\n\nSearch (JSONL default):\n```\nmemex search \"your query\" --limit 20\n```\n\nTUI:\n```\nmemex tui\n```\n\nNotes:\n- Embeddings are enabled by default.\n- Searches run an incremental reindex by default (configurable).\n\nFull transcript:\n```\nmemex session \u003csession_id\u003e\n```\n\nSingle record:\n```\nmemex show \u003cdoc_id\u003e\n```\n\nHuman output:\n```\nmemex search \"your query\" -v\n```\n\n## Build from source\n\n```\ncargo build --release\n```\n\nBinary:\n```\n./target/release/memex\n```\n\n## Setup (manual)\n\nIf you built from source, run setup to install:\n\n```bash\nmemex setup\n```\n\nThis detects which tools are installed (Claude/Codex) and presents an interactive menu to select which to configure.\n## Search modes\n\n| Need | Command |\n| --- | --- |\n| Exact terms | `search \"exact term\"` |\n| Fuzzy concepts | `search \"concept\" --semantic` |\n| Mixed | `search \"term concept\" --hybrid` |\n\n## Common filters\n\n- `--project \u003cname\u003e`\n- `--role \u003cuser|assistant|tool_use|tool_result\u003e`\n- `--tool \u003ctool_name\u003e`\n- `--session \u003csession_id\u003e`\n- `--source claude|codex`\n- `--since \u003ciso|unix\u003e` / `--until \u003ciso|unix\u003e`\n- `--limit \u003cn\u003e`\n- `--min-score \u003cfloat\u003e`\n- `--sort score|ts`\n- `--top-n-per-session \u003cn\u003e`\n- `--unique-session`\n- `--fields score,ts,doc_id,session_id,snippet`\n- `--json-array`\n\n## Background index service\n\nWorks on macOS (launchd) and Linux (systemd).\n\nEnable:\n```\nmemex index-service enable\nmemex index-service enable --continuous\n```\n\nDisable:\n```\nmemex index-service disable\n```\n\n`index-service` reads config defaults (mode, interval, log paths). Flags override.\n\nOn Linux, creates systemd user units in `~/.config/systemd/user/`. On macOS, creates a launchd plist in `~/.memex/`.\n\n## Embeddings\n\nDisable:\n```\nmemex index --no-embeddings\n```\n\nRecommended when embeddings are on (especially non-`potion` models): run the background\nindex service or `index --watch`, and consider setting `auto_index_on_search = false`\nto keep searches fast.\n\n## Embedding model\n\nSelect via `--model` flag or `MEMEX_MODEL` env var:\n\n| Model | Dims | Speed | Quality |\n|-------|------|-------|---------|\n| minilm | 384 | Fastest | Good |\n| bge | 384 | Fast | Better |\n| nomic | 768 | Moderate | Good |\n| gemma | 768 | Slowest | Best |\n| potion | 256 | Fastest (tiny) | Lowest (default) |\n\n```\nmemex index --model minilm\n# or\nMEMEX_MODEL=minilm memex index\n```\n\n## Config (optional)\n\nCreate `~/.memex/config.toml` (or `\u003croot\u003e/config.toml` if you use `--root`):\n\n```toml\nembeddings = true\nauto_index_on_search = true\nmodel = \"potion\"  # minilm, bge, nomic, gemma, potion\nscan_cache_ttl = 3600  # seconds (default 1 hour)\nindex_service_mode = \"interval\"  # interval or continuous\nindex_service_interval = 3600  # seconds (ignored when mode = \"continuous\")\nindex_service_poll_interval = 30  # seconds\nindex_service_label = \"memex-index\"  # service name (default: com.memex.index on macOS)\nindex_service_systemd_dir = \"~/.config/systemd/user\"  # Linux only\nclaude_resume_cmd = \"claude --resume {session_id}\"\ncodex_resume_cmd = \"codex resume {session_id}\"\n```\n\nService logs and the plist live under `~/.memex` by default (macOS). On Linux, systemd units are created in `~/.config/systemd/user/`.\n\n`scan_cache_ttl` controls how long auto-indexing considers scans fresh.\n\nResume command templates accept `{session_id}`, `{project}`, `{source}`, `{source_path}`, `{source_dir}`, `{cwd}`.\n\nThe skill/prompt definitions are bundled in `skills/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicosuave%2Fmemex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicosuave%2Fmemex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicosuave%2Fmemex/lists"}