sherpa_onnx
使用下一代 Kaldi 與 onnxruntime 在無網際網路連接的情況下實現語音辨識、語音合成、說話人分離與說話人辨識。
開源的本地優先AI日記應用,支援iOS與Android。捕捉文字、照片和語音——AI代理將它們整理成時間軸卡片與洞見。您的資料始終留在裝置上。使用您自己的LLM(OpenAI、Claude、Gemini、Ollama等)。
使用下一代 Kaldi 與 onnxruntime 在無網際網路連接的情況下實現語音辨識、語音合成、說話人分離與說話人辨識。
一個用於控制相機的 Flutter 外掛程式。支援預覽相機畫面、拍攝照片和影片,並將影像緩衝區串流傳輸至 Dart。
在 Flutter 應用中輕鬆跨平台設定 drift 資料庫。
v8.3.0Flutter 的首選非商業地圖客戶端:易於使用、多功能、無供應商依賴、完全跨平台,且 100% 純 Flutter
v1.14.1一個帶有 Cupertino 和 Material 播放控制項的 Flutter 影片播放器
v10.1.2一個基於微信 UI 的 Flutter 項目影像選擇器(支援影片與音訊),完全支援自訂。
Flutter 的地理定位外掛程式。此外掛程式為通用位置(GPS 等)功能提供跨平台(iOS、Android)API。
一個 Flutter 外掛程式,用於使用 Google 的 ML Kit 圖像標籤功能來偵測和提取圖像中各類實體的資訊。
一個 Flutter 插件,用於使用 Google 的 ML Kit 文字辨識功能來識別任何中文、天城文、日文、韓文和拉丁文字集中的文字。
WebSockets 的 StreamChannel 包裝器。提供跨平台的 WebSocketChannel API,以及基於底層 StreamChannel 通訊的跨平台 API 實作。
Flutter Workmanager。此外掛程式允許您在 Android 和 iOS 上排程背景工作。
一個 Flutter 外掛,為 Android、iOS、macOS 和 OpenHarmony 提供相簿資源抽象管理 API。
{"sdk":"flutter"}{"sdk":"flutter"}^1.0.6^6.1.0^0.66.0^3.0.0^2.2.4^6.1.0^0.9.0^6.1.1^14.6.2^1.1.2^5.4.0^3.0.1^2.2.2^2.1.1^9.0.0^1.1.0^1.0.7^6.0.0^11.1.0^3.5.0^10.1.0^4.4.4^0.20.2^4.3.3^1.18.0^3.0.7^2.9.1^1.2.0^0.0.25{"path":"plugins/agent_background_android"}^4.0.0^6.6.1^3.1.2^6.5.1^0.7.7+1^2.3.0^13.2.1^4.0.0^0.9.0^2.1.6^0.8.7^2.30.0^0.5.41^0.2.8^1.9.1^0.4.7^3.4.0^3.3.0^2.10.1^1.13.0^1.4.0^4.7.2^2.4.0^0.15.0^0.11.3+1^0.15.1^0.14.2^6.3.2^10.1.4^8.1.7^3.0.01.13.2^14.0.2{"sdk":"flutter"}^3.0.0^1.26.3^2.30.0^2.10.4^0.14.4^2.4.7^2.4.6以下為英文專案原文快照,最新內容請造訪 GitHub。
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 · Discord
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, build your knowledge base, discover insights, and provide companionship through AI characters.
What "local-first" means here: Your records, cards, and knowledge all stay on your device. There is no Memex server storing your journal. You bring your own LLM provider (OpenAI, Claude, Gemini, DeepSeek, etc.), and your prompts go directly from your phone to that provider — we never see your data. The optional Memex AI service only proxies model requests; it does not store your journal.
[!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.6-flash, gemini-3.1-pro-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.6-sol, gpt-5.6-terra, gpt-5.6-luna, etc. |
| ChatGPT | OAuth (no API key required) | Sign in with OpenAI account. Unofficial — use at your own risk |
| Anthropic Claude | Claude API | claude-fable-5, claude-opus-5, claude-sonnet-5 |
| AWS Bedrock | Bedrock Claude | anthropic.claude-fable-5, anthropic.claude-opus-5, etc. |
| Memex AI | Managed model access | Optional account-based model access; journal data remains local |
| Kimi (Moonshot) | OpenAI-compatible | kimi-k3, kimi-k2.7-code, etc. |
| Aliyun (Qwen) | OpenAI-compatible | qwen3.8-max, qwen3.7-plus, qwen3.7-flash |
| Volcengine (Doubao) | OpenAI / Responses-compatible | doubao-seed-2-0-pro-260215, doubao-seed-2-0-mini-260428, etc. |
| Zhipu GLM | OpenAI-compatible | glm-5.2, glm-5v-turbo, glm-4.6v |
| DeepSeek | OpenAI-compatible | deepseek-v4-flash, deepseek-v4-pro |
| MiniMax | Anthropic-compatible | MiniMax-M3, MiniMax-M2.7, etc. |
| Xiaomi MIMO | Anthropic-compatible | mimo-v2.5-pro, mimo-v2.5 |
| OpenRouter | OpenAI-compatible | Access multiple providers via one API |
| Ollama | OpenAI-compatible (local) | Run models locally on your device |
Memex requires a configured model service 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.
The same skill-host infrastructure used by Memex's internal workflows is available for custom agents. You can wire agents into local events, give them skills and tools, and decide whether they run inline or as background tasks.
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, Memex AI, Kimi, Qwen, Doubao, GLM, DeepSeek, MiniMax, MIMO, OpenRouter, Ollama |
| Agent Framework | dart_agent_core |
lib/
├── agent/ # Multi-agent system
│ ├── super_agent/ # Conversational orchestrator and child agents
│ ├── skills/ # Timeline card, PKM, insight, schedule, memory skills
│ ├── comment_agent/ # Character comments
│ ├── companion_agent/ # 1v1 companion chat
│ ├── memory/ # Long-term memory services
│ ├── pure_skill_host_agent/ # Custom pure skill host
│ └── memex_skill_host_agent/ # Custom Memex-aware skill host
├── data/ # Repositories & services
├── db/ # Drift database schema
├── domain/ # Domain models
├── l10n/ # i18n (en, zh, zh_Hant, de, ja, ko, es, hi, ar, pt, fr, id, fa, vi, th, tr, ru)
├── llm_client/ # LLM client abstraction layer
├── ui/ # Presentation layer (MVVM)
└── utils/ # Shared utilities
User Input (text/image/voice/shared files)
↓
Asset preparation (transcription, document text extraction, image encoding, metadata)
↓
Memex Agent orchestration
↓
Specialist skills or child agents as needed:
- timeline_card → Cards YAML + UI config
- pkm → P.A.R.A Markdown knowledge base
- schedule → Schedule state
- knowledge_insight → Cross-record insight cards
↓
Background tasks:
- character comments
- long-term memory curation
- event-driven custom agents
↓
Local Storage (filesystem + SQLite)
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.