Skip to content

memex-lab/memex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

726 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An open-source, local-first AI journal. Not for writing daily entries — for capturing life in fragments and letting AI organize them.

English | 简体中文

Release License Stars

Website · App Store · Google Play · Discord

What is Memex?

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 ⭐

Star Us

Features

🤖 AI-Powered Organization

  • Memex Agent orchestration: one conversational agent coordinates specialist skills and child agents for timeline cards, PKM filing, schedule updates, knowledge insights, diagnostics, comments, memory curation, media handling, and companion chat.
  • Automatically generates the most fitting card for each type of record:
    • Life & productivity (task, routine, event, duration, progress) — record todos, habits, schedules and goals
    • Knowledge & media (article, snippet, quote, link, conversation) — capture notes, references and dialogues
    • People & places (person, place) — record contacts and locations with map preview
    • Data & metrics (metric, rating, transaction, spec sheet) — record measurements, reviews and expenses
    • Visual (gallery) — preserve moments through photos
Readme-Scene02-CardShowcase.mp4
  • Auto-tagging, entity extraction, and cross-reference linking
  • Conversational AI assistant for discussing any card or topic

💡 Knowledge & Insights

  • P.A.R.A-based knowledge organization (Projects, Areas, Resources, Archives)
  • Insight cards that surface connections across records:
    • Charts (trend, bar, radar, bubble, composition, progress ring) — visualize patterns, distributions and goal progress over time
    • Narrative (highlight, contrast, summary) — surface key conclusions, before/after comparisons, and periodic reviews
    • Spatial & temporal (map, route, timeline) — reconstruct where and when things happened
    • Gallery — visual memory from your photos
readme-scene03-insights.mp4

🤝 AI Companion

  • Create AI characters with unique personalities that accompany your journaling
  • Auto-commentary: Characters react to your new timeline cards — like a friend who's always paying attention
  • 1v1 chat: Have real conversations with your character, who remembers your life context from cards and knowledge
  • Persistent memory: Characters maintain long-term memory across both comment and chat scenes — they grow with you
  • SillyTavern compatible: Import character cards (V2 JSON + PNG) with persona, world book, and example dialogues

📝 Pure Text & Data Freedom

  • Effortless Archiving: After AI organization, all your records naturally settle into a series of interconnected Markdown files, making one-click diary and document archiving a breeze.
  • Evolve Alongside AI: Why Markdown? Because as AI capabilities rapidly advance, only the purest text records can bridge the gap of time and truly keep pace with its evolution. As LLM models strengthen, these simple records will reliably unlock entirely new interactive experiences and profound insights for you in the future.
  • Absolute Freedom to Leave: Zero vendor lock-in. If you ever feel our product no longer meets your expectations, you can one-click export all your records as standard Markdown files and migrate seamlessly to any note-taking app at zero cost.

🔒 Privacy & Local-First

  • All data stored locally (filesystem + SQLite)
  • App lock with biometric authentication
  • No cloud dependency — your data never leaves your device

📂 Storage & Backup

  • Supports iCloud Drive, Device storage (custom folder) and App storage
  • One-tap full backup / restore

🔗 Multi-LLM Provider Support

Provider API Type Notes
Google Gemini Gemini API gemini-3.5-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.5, gpt-5.4, etc.
ChatGPT 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
Memex AI Managed model access Optional account-based model access; journal data remains local
Kimi (Moonshot) OpenAI-compatible kimi-k2.5, kimi-k2, etc.
Aliyun (Qwen) OpenAI-compatible qwen3.5-plus, qwen3-coder, etc.
Volcengine (Doubao) OpenAI / Responses-compatible doubao-seed-2-0-pro-260215, doubao-seed-1-8-251228, etc.
Zhipu GLM OpenAI-compatible glm-5v-turbo, glm-4.6v
DeepSeek OpenAI-compatible deepseek-v4-flash, deepseek-v4-pro
MiniMax Anthropic-compatible MiniMax-M2.5, MiniMax-M1
Xiaomi MIMO Anthropic-compatible mimo-v2.5, mimo-v2-omni, etc.
OpenRouter OpenAI-compatible Access multiple providers via one API
Ollama OpenAI-compatible (local) Run models locally on your device

Install

Configure LLM

Memex requires a configured model service to power its AI features. On first launch:

  1. Tap the avatar icon → Model Configuration
  2. Select your provider (Gemini / OpenAI / Claude / DeepSeek / Memex AI / Ollama / etc.)
  3. Enter an API key and base URL, sign in with OAuth, or connect the optional Memex AI service as required by the provider
  4. Each agent can be configured with a different model independently

Configure Location Context

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.

  1. Open Personal center → Settings → Location.
  2. Turn on "Attach current location to chat".
  3. Choose a reverse geocoding provider:
    • OpenStreetMap / Nominatim works without an API key.
    • Amap requires an API key.
  4. To use Amap, create an application in the Amap Open Platform, enable the Web Service API, copy the key, and paste it into the Amap API Key field.
  5. Choose the context granularity and freshness window.

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

🧩 Custom Agent System

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.

What You Can Build

  • 🎯 Create agents freely — Give it a name, pick a host type (Pure mode), and a new agent is ready to go.
  • Event-driven triggers — Choose when your agent activates: after a new timeline card is saved, when a card comment is posted, when a card UI config changes, or when local data changes.
  • 🧠 Per-agent LLM configuration — Each agent can use a different model.
  • 📝 Custom system prompts — Shape your agent's personality, expertise, and output format with a custom system prompt.
  • 📂 Skill — Memex adopts the open Agent Skills standard. Each agent reads its behavior from a SKILL.md file — a folder of instructions, scripts, and resources that agents discover and use on demand.
  • 🗂️ Working directory — Each agent can be configured with its own workspace. File reads, writes, and listings are scoped to that directory.
  • 🚀 JavaScript execution — Skills can run JavaScript code, including fetch() for HTTP requests. Call external APIs, transform data, scrape web content — all running locally on your device.
  • 🔗 Inter-agent dependency chains — Define execution order with dependsOn to build complex workflows. Agent B waits for Agent A to finish before it starts.
  • 🔄 Sync & async execution modes — Run agents synchronously (inline, blocking) or asynchronously (queued as background tasks) depending on your workflow needs.
  • 🔁 Auto-retry with configurable limits — Async agents automatically retry on failure, with a configurable max retry count.

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.

Community

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.

Roadmap

  • Richer video and file attachment workflows
  • Scheduled insight refresh — periodically re-analyze records for new patterns
  • Agent Soul — personalize agent behavior and personality
  • Customization — choose your own knowledge methodology, tagging rules, chat personas, and card styles
  • Extensible data sources & triggers — freely extend input sources and trigger conditions
  • Extension Market & Plugin Architecture — a cloud registry for agents, UI card templates, and persona configs with one-tap install and hot-reload

Development

Build from source

Prerequisites

  • Flutter SDK ≥ 3.6.0
  • Xcode (for iOS)
  • Android Studio (for Android)

Setup

git clone https://github.com/memex-lab/memex.git
cd memex
flutter pub get

For iOS:

cd ios && pod install && cd ..

Run

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.

Architecture

Tech Stack

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

Project Structure

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 (English, Chinese)
├── llm_client/     # LLM client abstraction layer
├── ui/             # Presentation layer (MVVM)
└── utils/          # Shared utilities

Data Flow

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)

Contributing

Contributions are welcome. Please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Star History

Star History Chart

License

This project is licensed under the GPL-3.0 License — see the LICENSE file for details.

About

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).

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors