Skip to content

0x12th/meetily-memory

Repository files navigation

Meetily Memory

Search. Context. Verify.

Meetily Memory turns local Meetily meetings into a private, source-backed memory for search, context, and verification.

It is for the moment when:

"I remember we discussed this."

...is not enough.

You need the original decision, the remaining risks, the people involved, and the meeting that proved it.

Meetily Memory never modifies the Meetily database and never requires a cloud service.


Install

On macOS:

brew tap 0x12th/meetily-memory
brew install meetily-memory

The CLI is available as:

mm
meetily-memory

Quick Start

Initialize Meetily Memory:

mm init

mm init automatically:

  • discovers the local Meetily database;
  • creates a private search index;
  • performs the initial refresh;
  • offers to enable automatic refreshes.

Nothing optional is enabled without asking.

If discovery fails:

mm doctor

Typical workflow:

Search meetings:

mm s "migration risk"

Example output:

#10 Meeting 2026-07-06

12:56:36 | chunk #3863 | open: mm open 10
If I write to the database, I must also publish to Kafka...

12:56:42
Pattern outbox.

Show neighboring context around each hit:

mm s "migration risk" --context 2

Build LLM-ready context:

mm c "what did we decide about the migration?"

Explore a topic:

mm t "migration"

Open the original meeting:

mm open 12

If automatic refreshes are disabled:

mm refresh

Update the installed utility:

mm update

Core Commands

Search

mm s "migration risk"

Search indexed meetings and return matching source snippets.

Use --context N when the matching snippet is too short:

mm s "migration risk" --context 2

Context

mm c "what did we decide about the migration?"

Build clean Markdown context ready to paste into ChatGPT, Claude, or Codex.

Topics

mm t "migration"

Experimental. Explore a topic as search results grouped into an evidence-backed dossier: summary, related meetings, possible decisions, possible risks, possible tasks, possible questions, and supporting excerpts.

Topic output is not a knowledge-graph oracle or an LLM-generated answer. If structured memory has no matches, it still shows relevant evidence from search. Topic expansion uses stored aliases, not built-in term dictionaries:

mm t "kafka" --alias "кафка" --alias "broker"

The CLI language is stable across commands. Configure it explicitly when needed:

mm config language ru
mm config language auto

Open

mm open 12

Open the original Meetily meeting.

Refresh

mm refresh

Refresh the local index when automatic refreshes are disabled.


Optional Features

Obsidian (Experimental)

Meetily Memory can maintain a managed Obsidian knowledge vault.

Configure it once:

mm obsidian init

Synchronize manually when needed:

mm obsidian sync

Managed notes include:

  • Topics
  • Meetings
  • People
  • Tasks
  • Decisions
  • Risks
  • Questions

Managed files contain:

<!-- meetily-memory:managed -->

Only managed notes are updated.

Your own notes are never overwritten.


LLM Answering (Experimental)

Configure a provider:

mm llm init

Supported providers:

  • Manual (prepare context for ChatGPT or Claude)
  • Ollama (local models)

The mm ask command is intentionally hidden while this workflow matures.

For now, mm c is the recommended interface.

Compatibility command:

mm ask "what is still open?"

Meetily Memory always retrieves supporting evidence before preparing or sending context to an LLM.


MCP (Experimental)

mm mcp serve

Expose Meetily Memory to external agents.

MCP support is optional for pip and uv installs via meetily-memory[mcp].

If the extra is not installed, the command prints installation instructions instead of starting a server.


Principles

  • Search-first public CLI.
  • Evidence before summaries.
  • Search → Context → Verify.
  • Local-first.
  • Private by default.
  • Read-only Meetily database.

Architecture

                Meetily SQLite
                      │
                      ▼
          Meetily Memory index.sqlite
                      │
      ┌───────────────┼────────────────────┐
      │               │                    │
      ▼               ▼                    ▼
   FTS Search   Source Context      Structured Signals
    stable         stable              experimental
      │                                   │
      ├───────────────┬───────────────────┤
      ▼               ▼                   ▼
     CLI       Topic Summary       Semantic Search
    stable      experimental        experimental
                      │
        ┌─────────────┼──────────────┐
        ▼             ▼              ▼
  Obsidian       LLM Answering      MCP
 experimental    experimental   experimental

Meetily Memory stores only derived local state:

  • normalized meetings and chunks;
  • SQLite FTS index;
  • experimental decisions, action items, risks, and questions;
  • experimental topic relationships;
  • optional semantic embeddings;
  • local application settings.

The stable path is search, context, and source verification. The experimental knowledge layers power mm t, Obsidian synchronization, LLM workflows, and the MCP adapter.


Development

uv sync
uv run ruff check .
uv run ruff format --check .
uv run ty check --error all
uv run pytest -q
uv build

License

Licensed under the Apache License 2.0.

See LICENSE.

About

Can turn your local Meetily meeting history into a private, searchable memory.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Contributors