DontForget — ターミナル向けローカルAIセカンドブレイン
概要
DontForgetはローカル環境で動くターミナル向けのメモリ管理ツールで、生のテキストをそのまま保存して後から自然言語で取り出せることを目的としています。Google Geminiを利用して入力したメモにAIによるタグ付けを行い、SQLiteのFTS5(全文検索)を用いた検索で該当メモを抽出します。ベクトル検索や埋め込みを導入せず、データを加工せず保存する「Lazy Storage, Brute-Force Retrieval」アプローチを採ることでシンプルな構成を実現しており、少ない依存でローカルにセカンドブレインを作りたい開発者やパワーユーザーに向いています。
リポジトリの統計情報
- スター数: 32
- フォーク数: 3
- ウォッチャー数: 32
- コミット数: 5
- ファイル数: 7
- メインの言語: Python
主な特徴
- 生テキストをそのままSQLiteに保存する「Lazy Storage」設計
- Google Geminiでのスマートタグ付けと自然言語検索連携
- SQLite FTS5を用いた全文検索による「Brute-Force Retrieval」
- ベクトルDBや埋め込みを使わずシンプルに運用可能
技術的なポイント
DontForgetの技術的核は「生のテキスト保存 + AIタグ + SQLite FTS」にあります。入力はプレーンテキストとしてDBに格納され、Google Geminiがテキストの意味的特徴を抽出してタグ付けやメタ情報を生成します。検索時はまずFTS5で高速に候補ドキュメントを絞り込み、その後(必要に応じて)AIを用いた再ランキングや自然言語クエリ変換で精度を補正する設計が想定されます。これにより、埋め込みベースのRAGやベクトルDBに比べて依存や運用コストを抑えられる一方で、極めて大規模なコーパスや意味的な近傍探索が必要な用途ではスケーラビリティや検索精度の課題が出得ます。実装面ではPythonでまとめられており、.python-versionで環境を固定する形、CLI(mem-cli)を通じてターミナル操作中心に設計されているため、スクリプトやパイプラインへの組み込みが容易です。ローカルDBを使うことでファイルベースのバックアップや移行が簡単ですが、Google Geminiを利用する点は外部API依存とデータ送信の可否(プライバシー)に関する検討が必要です。拡張案としては、大規模化に備えたシャーディング/分割索引、オプションでの埋め込み層導入、ローカル自己ホスト型モデルのタグ付けへの切替、保存データの暗号化などが考えられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .python-version: file
- README.md: file
- main.py: file
- mem-cli: file
…他 2 ファイル
まとめ
シンプルで低コストに試せるローカル志向のAIメモリ実装。使い勝手優先のプロトタイプに最適。
リポジトリ情報:
- 名前: dontforget
- 説明: your edentic memory
- スター数: 32
- 言語: Python
- URL: https://github.com/bugswriter/dontforget
- オーナー: bugswriter
- アバター: https://avatars.githubusercontent.com/u/23283318?v=4
READMEの抜粋:
🧠 DontForget: The AI Second Brain
DontForget is a local, “God Mode” memory engine for your terminal. It allows you to dump raw thoughts, tasks, and ideas into a database and retrieve them later using natural language, powered by Google Gemini AI and SQLite.
Unlike complex RAG systems that require vector databases and embeddings, DontForget uses a “Lazy Storage, Brute-Force Retrieval” architecture. It stores raw text with smart AI tags and uses SQLite’s Full-Text Search (FTS5) to hun…