Open-source, local-first AI journal app for iOS and Android. Capture text, photos, and voice — AI agents organize them into timeline cards and insights. Your data stays on your device. Bring your own LLM (OpenAI, Claude, Gemini, Ollama, and more).
An open-source, local-first AI journal. Not for writing daily entries — for capturing life in fragments and letting AI organize them.
Website · App Store · Google Play
Memex is an open-source, local-first AI journal for iOS and Android. It takes a different approach from traditional journaling apps — instead of asking you to sit down and write polished entries, Memex lets you capture life in fragments (text, photos, voice) and uses a multi-agent AI system to organize them into structured cards, builds your knowledge base, discovers insights, and provides companionship through AI characters.
What “local-first” means here: Your records, cards, and knowledge all stay on your device. There is no Memex account and no Memex server storing your journal. You bring your own LLM provider (OpenAI, Claude, Gemini, etc.), and your prompts go directly from your phone to that provider — we never see your data.
[!IMPORTANT]
Star Us — you’ll get notified of every new release on GitHub ⭐
https://github.com/user-attachments/assets/4da8225e-945c-474c-8540-dc4d7af64a28
https://github.com/user-attachments/assets/5048a9b1-47b2-462a-99f3-6a178e183861
| Provider | API Type | Notes |
|---|---|---|
| Google Gemini | Gemini API | gemini-3.1-pro-preview, gemini-3-flash-preview, etc. |
| Google Gemini | OAuth (no API key required) | Sign in with Google account. Unofficial — use at your own risk |
| OpenAI | Chat Completions / Responses API | GPT-5.4, etc. |
| OpenAI | OAuth (no API key required) | Sign in with OpenAI account. Unofficial — use at your own risk |
| Anthropic Claude | Claude API | Direct API access |
| AWS Bedrock | Bedrock Claude | For AWS users |
| Kimi (Moonshot) | OpenAI-compatible | kimi-k2.5, kimi-k2, etc. |
| Aliyun (Qwen) | OpenAI-compatible | qwen3.5-plus, qwen-max, etc. |
| Volcengine (Doubao) | OpenAI-compatible | doubao-seed-1-8, doubao-1.5-pro, etc. |
| Zhipu GLM | OpenAI-compatible | GLM-4.7, GLM-4-Plus |
| MiniMax | Anthropic-compatible | MiniMax-M2.5, MiniMax-M1 |
| Xiaomi MIMO | Anthropic-compatible | MiMo-7B-RL |
| OpenRouter | OpenAI-compatible | Access multiple providers via one API |
| Ollama | OpenAI-compatible (local) | Run models locally on your device |
Memex requires an LLM API key to power its AI features. On first launch:
Memex can optionally attach your current city, district, and neighborhood context to agent conversations. This uses device GPS only; IP-based location is not used.
For local live tests of Amap reverse geocoding, pass the key through an environment variable instead of committing it:
AMAP_GEOCODING_TEST_KEY=your_key flutter test test/data/services/geocoding_service_test.dart
Memex isn’t just a recording app — it’s a platform that lets you build your own AI agents on your phone.
Every built-in agent in Memex (knowledge extraction, card generation, insight discovery…) runs on the same custom agent infrastructure, and that infrastructure is fully open to you. That means you can create agents with the same capabilities as the built-in ones.
SKILL.md file — a folder of instructions, scripts, and resources that agents discover and use on demand.fetch() for HTTP requests. Call external APIs, transform data, scrape web content — all running locally on your device.dependsOn to build complex workflows. Agent B waits for Agent A to finish before it starts.Custom Agent System
Every agent you create is a first-class citizen — it plugs into the same event bus, uses the same tool system, and has the same capabilities as the built-in agents. The only limit is your imagination.
💡 Learn more about the Skill format: Agent Skills is an open standard originally developed by Anthropic for packaging agent capabilities. Visit the site to understand how to write SKILL.md files and design agent behaviors.
Memex welcomes bug reports, feature ideas, docs improvements, localization, provider adapters, and focused code contributions. Please read CONTRIBUTING.md before opening a large PR.
Opening an issue helps us understand demand, but it does not guarantee implementation.
git clone https://github.com/memex-lab/memex.git
cd memex
flutter pub get
For iOS:
cd ios && pod install && cd ..
flutter run --flavor globalDev
For Android local development, prefer globalDev / cnDev; they use isolated package IDs and app data. global / cn are Stable builds, and globalEarly / cnEarly are Android Early builds.
| Layer | Technology |
|---|---|
| Framework | Flutter (Dart ≥ 3.6) |
| Platforms | iOS, Android |
| Database | Drift (SQLite) |
| State Management | Provider + MVVM |
| LLM Providers | Gemini, OpenAI, Claude, Bedrock, Kimi, Qwen, Doubao, GLM, MiniMax, MIMO, OpenRouter, Ollama |
| Agent Framework | dart_agent_core |
lib/
├── agent/ # Multi-agent system
│ ├── pkm_agent/ # Personal knowledge management
│ ├── card_agent/ # Timeline card generation
│ ├── insight_agent/ # Cross-record insight discovery
│ ├── comment_agent/ # AI commentary
│ ├── memory_agent/ # Memory summarization
│ ├── persona_agent/ # User profile modeling
│ ├── super_agent/ # Orchestrator agent
│ └── skills/ # Composable agent skills
├── data/ # Repositories & services
├── db/ # Drift database schema
├── domain/ # Domain models
├── l10n/ # i18n (English, Chinese)
├── llm_client/ # LLM client abstraction layer
├── ui/ # Presentation layer (MVVM)
└── utils/ # Shared utilities
User Input (text/image/voice)
↓
Input Processing & Asset Analysis (ML Kit)
↓
PKM Agent → Knowledge extraction & linking
↓
Card Agent → Structured timeline card
↓
Insight Agent → Cross-record pattern discovery
↓
Local Storage (filesystem + SQLite)
Architecture Overview
Contributions are welcome. Please open an issue first to discuss what you would like to change.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the GPL-3.0 License — see the LICENSE file for details.