{"id":51546923,"url":"https://github.com/illegalstudio/mnemo","last_synced_at":"2026-07-09T19:01:12.346Z","repository":{"id":368216177,"uuid":"1182691984","full_name":"illegalstudio/mnemo","owner":"illegalstudio","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-29T13:57:02.000Z","size":1948,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-29T15:26:27.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/illegalstudio.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-03-15T21:07:59.000Z","updated_at":"2026-06-29T13:58:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/illegalstudio/mnemo","commit_stats":null,"previous_names":["illegalstudio/mnemo"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/illegalstudio/mnemo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illegalstudio%2Fmnemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illegalstudio%2Fmnemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illegalstudio%2Fmnemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illegalstudio%2Fmnemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/illegalstudio","download_url":"https://codeload.github.com/illegalstudio/mnemo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illegalstudio%2Fmnemo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35309828,"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":[],"created_at":"2026-07-09T19:01:10.218Z","updated_at":"2026-07-09T19:01:12.327Z","avatar_url":"https://github.com/illegalstudio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"src-tauri/icons/icon.png\" alt=\"Mnemo logo\" width=\"120\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eMnemo\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eYour personal archive for AI chat conversations.\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/illegalstudio/mnemo/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/illegalstudio/mnemo?style=flat-square\u0026logo=github\u0026logoColor=white\u0026label=stars\u0026color=47bfff\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/illegalstudio/mnemo/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/illegalstudio/mnemo?style=flat-square\u0026logo=github\u0026logoColor=white\u0026label=release\u0026color=47bfff\" alt=\"Latest release\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/illegalstudio/mnemo?style=flat-square\u0026color=47bfff\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://tauri.app\"\u003e\u003cimg src=\"https://img.shields.io/badge/built%20with-Tauri-47bfff?style=flat-square\u0026logo=tauri\u0026logoColor=white\" alt=\"Built with Tauri\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eLocal-first \u0026middot; AI-powered analysis \u0026middot; Full-text search \u0026middot; Snapshots \u0026amp; backups\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Mnemo is a desktop app that captures your conversations from Claude, ChatGPT, Perplexity, and Grok\n  into one searchable, private archive. Everything lives on your machine — organized into folders and\n  tags, indexed for instant full-text search, and optionally enriched with AI-generated titles,\n  summaries, and tags.\n\u003c/p\u003e\n\n---\n\n## Features\n\n- **Capture from anywhere** — Import chats via a bookmarklet (HTML → Markdown) or by pasting Markdown directly. Supports Claude, ChatGPT, Perplexity, and Grok.\n- **AI analysis** — Optionally run a configured Claude Code or Codex CLI to generate a title, summary, and tags for each imported chat.\n- **Organize** — Sort chats into folders and tags with a tree-based sidebar.\n- **Full-text search** — Instant search across your entire archive, powered by a Tantivy index.\n- **Attachments** — Files are copied into the app data directory so your archive stays portable.\n- **Snapshots** — One-click backups bundle your database and attachments into a single zip; restore atomically with an automatic safety snapshot.\n- **Local-first \u0026 private** — All data stays on your machine. No accounts, no cloud.\n\n## Tech stack\n\n- **Frontend** — React 19, TypeScript, Vite, Tailwind CSS\n- **Backend** — Rust + [Tauri 2](https://tauri.app)\n- **Storage** — SQLite (`tauri-plugin-sql`) for data, [Tantivy](https://github.com/quickwit-oss/tantivy) for search\n- **Markdown** — `react-markdown`, `remark-gfm`, `turndown` (HTML → Markdown), `mermaid` diagrams\n\n## Getting started\n\n### Prerequisites\n\n- [Bun](https://bun.sh)\n- [Rust](https://www.rust-lang.org/tools/install) and the [Tauri system dependencies](https://v2.tauri.app/start/prerequisites/)\n\n### Develop\n\n```bash\nbun install\nbun run tauri dev      # run the app with hot reload\n```\n\n### Build\n\n```bash\nbun run tauri build    # produce a production desktop bundle\n```\n\n### Other commands\n\n```bash\nbun run build              # build the frontend only (tsc + vite)\nnpx tsc --noEmit           # type-check the frontend\ncd src-tauri \u0026\u0026 cargo check  # type-check the Rust backend\n```\n\n## Importing chats\n\n1. Open a conversation on Claude, ChatGPT, Perplexity, or Grok.\n2. Run the Mnemo bookmarklet to capture the page, or copy the conversation as Markdown.\n3. Paste or import it into Mnemo. Duplicate detection compares against existing chats from the same source and offers to update or create a new entry.\n4. (Optional) Run AI analysis to generate a title, summary, and tags.\n\n## Architecture\n\n```\nsrc/                  React + TypeScript frontend\n  components/         ChatDetail, ChatList, Sidebar, Settings, FolderTree, TagTree\n  hooks/              useDatabase (CRUD, filtering, import), useAnalysisSettings\n  lib/                db, metadata (AI analysis), attachments, html-parser, parser\nsrc-tauri/            Rust + Tauri backend\n  src/lib.rs          Tauri commands: search, indexing, storage usage\n  src/backup.rs       Snapshot create / restore / export / delete\n  src/search.rs       Tantivy full-text search index\n```\n\nData is stored under the app data directory: SQLite at `mnemo.db`, attachments under\n`attachments/`, the search index at `tantivy_index/`, and snapshots as `snapshot-*.mnemo.zip`.\n\n## License\n\n[MIT](LICENSE) © Illegal Studio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fillegalstudio%2Fmnemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fillegalstudio%2Fmnemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fillegalstudio%2Fmnemo/lists"}