AI 에이전트와 나눈 모든 대화를 검색하세요.
Search everything you've ever discussed with AI agents.
seCall은 AI 에이전트 세션을 위한 로컬 퍼스트 검색 엔진입니다. Claude Code, Codex CLI, Gemini CLI, claude.ai, ChatGPT의 대화 로그를 수집하고, BM25 + 벡터 하이브리드 검색으로 인덱싱하며, CLI/MCP 서버/Obsidian 호환 지식 볼트로 제공합니다.
AI와의 대화는 곧 지식 자산입니다. seCall은 그것을 검색 가능하고, 탐색 가능하며, 서로 연결된 형태로 만듭니다.
- 수백 개의 에이전트 세션에 걸쳐 아키텍처, 디버깅, 설계 결정을 논의했지만 — 불투명한 JSONL 파일에 흩어져 있습니다.
- seCall은 이 세션들을 구조화되고 검색 가능한 지식 그래프로 변환합니다. MCP 호환 AI 에이전트에서 쿼리하거나 Obsidian에서 탐색할 수 있습니다.
여러 AI 코딩 에이전트의 세션을 통합 형식으로 파싱하고 정규화합니다:
| 에이전트 | 형식 | 상태 |
|---|---|---|
| Claude Code | JSONL | ✅ 안정 |
| Codex CLI | JSONL | ✅ 안정 |
| Gemini CLI | JSON | ✅ 안정 |
| claude.ai | JSON (ZIP) | ✅ v0.2 신규 |
| ChatGPT | JSON (ZIP) | ✅ v0.2.3 신규 |
- BM25 전문 검색: SQLite FTS5 + 한국어 형태소 분석 (Lindera ko-dic / Kiwi-rs 선택 가능)
- 벡터 시맨틱 검색: Ollama BGE-M3 임베딩 (1024차원) + HNSW ANN 인덱스 (usearch)로 O(log n) 탐색
- Reciprocal Rank Fusion (RRF): BM25/벡터 독립 실행 후 결합 (k=60) + 세션 다양성 강제 (세션당 최대 2개 턴)
- LLM 쿼리 확장: Claude Code를 통한 자연어 쿼리 확장
Obsidian 호환 마크다운 볼트 (2계층 구조):
vault/
├── raw/sessions/ # 불변 세션 원본
│ └── YYYY-MM-DD/ # 날짜별 정리
├── wiki/ # AI 생성 지식 페이지
│ ├── projects/ # 프로젝트별 요약
│ ├── topics/ # 기술 주제 페이지
│ └── decisions/ # 아키텍처 의사결정 기록
└── graph/ # Knowledge Graph 출력
└── graph.json # 노드/엣지 데이터
- 위키 생성: Claude Code 메타에이전트 기반 (
secall wiki update) - Obsidian 백링크 (
[[]])로 세션 ↔ 위키 페이지 연결 - Dataview 쿼리를 위한 frontmatter 메타데이터 (
summary필드로 세션 내용 즉시 파악)
세션 간 관계를 결정적으로 추출하여 지식 그래프를 구축합니다 (LLM 호출 불필요):
- 노드 타입: session, project, agent, tool — frontmatter에서 자동 추출
- 엣지 타입:
belongs_to,by_agent,uses_tool,same_project,same_day - 증분 빌드: 신규 세션만 노드 추가, 관계 엣지는 전체 재계산으로 정확성 보장
- MCP 도구:
graph_query— AI 에이전트가 세션 간 관계를 탐색 (BFS, 최대 3홉)
MCP 호환 AI 에이전트에 세션 인덱스를 노출합니다:
# stdio 모드 (Claude Code, Cursor 등)
secall mcp
# HTTP 모드 (웹 클라이언트)
secall mcp --http 127.0.0.1:8080제공 도구: recall, get, status, wiki_search, graph_query
Git을 통해 여러 기기에서 지식 볼트를 동기화합니다:
# 전체 동기화: git pull → reindex → ingest → wiki → graph → git push
secall sync
# 로컬 전용 모드 (git 생략, Claude Code hook에 적합)
secall sync --local-only- MD가 원본 — DB는 파생 캐시이며,
secall reindex --from-vault로 완전 복구 가능 - 호스트 추적 — 각 세션이 어떤 기기에서 수집되었는지 기록 (frontmatter
host필드) - 충돌 없음 — 세션은 기기별 유니크하므로 git 머지 충돌 없음
내장 린트 규칙으로 인덱스 ↔ 볼트 정합성을 검증합니다:
secall lint
# L001: 누락된 볼트 파일
# L002: 고아 볼트 파일
# L003: FTS 인덱스 갭- Rust 1.75+ (소스 빌드 시)
- Claude Code, Codex CLI, Gemini CLI 중 하나 이상
- Ollama — 벡터 검색용 (선택사항, 없으면 BM25만 사용)
- Windows: MSVC 툴체인 (Visual Studio Build Tools)
소스 빌드:
git clone https://github.com/hang-in/seCall.git
cd seCall
cargo install --path crates/secall사전 빌드 바이너리 (Releases):
- macOS:
secall-aarch64-apple-darwin.tar.gz/secall-x86_64-apple-darwin.tar.gz - Windows:
secall-x86_64-pc-windows-msvc.zip(secall.exe + onnxruntime.dll)
Windows 사용자: 핵심 기능(파싱, BM25 검색, vault, MCP)은 동일하게 동작합니다. 아래 기능은 MSVC 미지원으로 비활성화:
- HNSW ANN 인덱스 (
usearch) — BLOB 코사인 스캔 fallback- Kiwi-rs 형태소 분석 — Lindera ko-dic fallback
# 대화형 온보딩 (권장)
secall init
# 또는 인자 직접 지정
secall init --vault ~/Documents/Obsidian\ Vault/seCall
secall init --git git@github.com:you/obsidian-vault.gitsecall init을 인자 없이 실행하면 대화형 위저드가 시작됩니다:
- Vault 경로 설정
- Git remote (선택)
- 토크나이저 선택 (lindera/kiwi)
- 임베딩 백엔드 선택 (ollama/none)
- Ollama 설치 확인 +
bge-m3모델 자동 pull
# Claude Code 세션 자동 감지
secall ingest --auto
# Codex CLI / Gemini CLI
secall ingest ~/.codex/sessions
secall ingest ~/.gemini/sessions
# claude.ai / ChatGPT export (ZIP)
secall ingest ~/Downloads/data-export.zip
# 또는 한 명령으로 전체 동기화
secall sync# BM25 전문 검색
secall recall "BM25 인덱싱 구현"
# 프로젝트, 에이전트, 날짜 필터
secall recall "에러 처리" --project seCall --agent claude-code --since 2026-04-01
# 벡터 시맨틱 검색 (Ollama 필요)
secall recall "검색 파이프라인 동작 방식" --vec
# LLM 쿼리 확장
secall recall "검색 정확도 개선" --expand# 요약 보기
secall get <session-id>
# 전체 마크다운
secall get <session-id> --full
# 특정 턴
secall get <session-id>:5시맨틱 검색(--vec)을 사용하려면 벡터 인덱스가 필요합니다. Ollama가 설치되어 있으면 secall embed 또는 secall sync 실행 시 자동으로 임베딩됩니다.
# 신규/변경된 세션만 임베딩
secall embed
# 전체 재임베딩
secall embed --all
# 성능 옵션 (M1 Max 기준 권장값)
secall embed --concurrency 4 --batch-size 32ONNX Runtime을 사용하려면
secall config set embedding.backend ort후secall model download로 모델을 다운로드하세요.
# Claude Code가 세션을 분석하고 위키 페이지를 생성
secall wiki update
# 위키 상태 확인
secall wiki status# 전체 그래프 빌드
secall graph build
# 통계 확인
secall graph stats
# graph.json 내보내기
secall graph exportsecall config 명령으로 설정을 관리합니다. config.toml을 직접 편집할 필요가 없습니다.
# 현재 설정 확인
secall config show
# 설정 변경
secall config set output.timezone Asia/Seoul
secall config set search.tokenizer kiwi
secall config set embedding.backend ollama
# 설정 파일 경로 확인
secall config path| 키 | 설명 | 기본값 |
|---|---|---|
vault.path |
Obsidian vault 경로 | ~/obsidian-vault/seCall |
vault.git_remote |
Git remote URL | (없음) |
vault.branch |
Git 브랜치 이름 | main |
search.tokenizer |
토크나이저 (lindera / kiwi) |
lindera |
search.default_limit |
검색 결과 수 | 10 |
embedding.backend |
임베딩 백엔드 (ollama / ort / none) |
ollama |
embedding.ollama_model |
Ollama 모델 이름 | bge-m3 |
output.timezone |
타임존 (IANA) | UTC |
설정 파일 경로:
- macOS:
~/Library/Application Support/secall/config.toml - Linux:
~/.config/secall/config.toml - Windows:
%APPDATA%\secall\config.toml
| 명령 | 설명 |
|---|---|
secall init |
대화형 온보딩 (vault, 토크나이저, 임베딩 설정) |
secall ingest [path] --auto |
에이전트 세션 파싱 및 인덱싱 |
secall sync [--local-only] [--no-wiki] |
전체 동기화: git pull → reindex → ingest → wiki → graph → git push |
secall recall <query> |
하이브리드 검색 |
secall get <id> [--full] |
세션 상세 조회 |
secall status |
인덱스 통계 + 설정 요약 |
secall embed [--all] |
벡터 임베딩 생성 |
secall lint |
인덱스/볼트 정합성 검증 |
secall mcp [--http <addr>] |
MCP 서버 시작 |
secall config show|set|path |
설정 확인/변경 |
secall graph build|stats|export |
Knowledge Graph 관리 |
secall wiki update|status |
위키 생성/상태 확인 |
secall model download|info|check |
ONNX 모델 관리 |
secall reindex --from-vault |
볼트에서 DB 재구축 |
secall migrate summary |
summary frontmatter 일괄 추가 |
Claude Code 설정 (~/.claude/settings.json)에 추가:
{
"mcpServers": {
"secall": {
"command": "secall",
"args": ["mcp"]
}
}
}세션 시작/종료 시 자동 동기화:
{
"hooks": {
"PreToolUse": [{
"matcher": "Initialize",
"hooks": [{"type": "command", "command": "secall sync --local-only"}]
}],
"PostToolUse": [{
"matcher": "Exit",
"hooks": [{"type": "command", "command": "secall sync"}]
}]
}
}자세한 설정 안내는 GitHub 볼트 동기화 가이드를 참고하세요.
┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Claude Code │ │ Codex CLI │ │Gemini CLI│ │claude.ai │ │ ChatGPT │
│ (JSONL) │ │ (JSONL) │ │ (JSON) │ │JSON (ZIP)│ │JSON (ZIP)│
└──────┬───────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │ │ │
└───────┬───────┴─────────────┴──────────────┴──────────────┘
│
┌─────▼──────┐
│ 파서들 │ claude.rs / codex.rs / gemini.rs / claude_ai.rs / chatgpt.rs
└─────┬──────┘
│
┌─────────▼─────────┐
│ 통합 세션 모델 │ Session → Turn → Action
└─────────┬─────────┘
│
┌────────────┼────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ SQLite │ │ 볼트 │ │ 벡터 │
│ FTS5 │ │ (MD) │ │ 스토어 │
│ BM25 │ │Obsidian │ │ BGE-M3 │
└────┬────┘ └─────────┘ └────┬────┘
│ │
└───────────┬───────────┘
│
┌──────▼──────┐
│ 하이브리드 RRF │ k=60
└──────┬──────┘
│
┌────────┼────────┐
│ │ │
┌────▼──┐ ┌──▼───┐ ┌──▼──┐
│ CLI │ │ MCP │ │위키 │
│recall │ │서버 │ │에이전트│
└───────┘ └──────┘ └─────┘
| 분류 | 기술 |
|---|---|
| 언어 | Rust 1.75+ (2021 에디션) |
| 데이터베이스 | SQLite + FTS5 (rusqlite, bundled) |
| 한국어 NLP | Lindera ko-dic + Kiwi-rs 형태소 분석 (macOS/Linux) |
| 플랫폼 | macOS, Windows (x86_64), Linux (CI) |
| 임베딩 | Ollama BGE-M3 (1024차원) / ONNX Runtime (선택) |
| ANN 인덱스 | usearch HNSW (macOS/Linux) |
| MCP 서버 | rmcp (stdio + Streamable HTTP / axum) |
| 볼트 | Obsidian 호환 Markdown |
| 위키 엔진 | Claude Code 메타에이전트 |
이 프로젝트는 다음 아이디어와 프로젝트를 기반으로 합니다:
- LLM Wiki (Andrej Karpathy) — LLM을 사용하여 원본 소스로부터 점진적으로 지식 베이스를 구축하는 패턴. seCall의 2계층 볼트 아키텍처(원본 세션 + AI 생성 위키)는 이 컨셉을 직접 구현한 것입니다. Tobi Lütke의 구현도 참고.
- qmd (Tobi Lütke) — 마크다운 파일을 위한 로컬 검색 엔진. seCall의 검색 파이프라인(FTS5 BM25, 벡터 임베딩, RRF k=60)은 qmd의 접근 방식을 참고하여 설계되었습니다.
- graphify (Safi Shamsi) — 파일 폴더를 knowledge graph로 변환하는 도구. seCall P16의 결정적 그래프 추출과 confidence 라벨링은 이 프로젝트에서 영감을 받았습니다.
이 프로젝트는 AI 코딩 에이전트(Claude Code, Codex)를 tunaFlow 멀티에이전트 워크플로우 플랫폼으로 오케스트레이션하여 개발되었습니다.
seCall is a local-first search engine for AI agent sessions. It ingests conversation logs from Claude Code, Codex CLI, Gemini CLI, claude.ai, and ChatGPT, indexes them with hybrid BM25 + vector search, and exposes them via CLI, MCP server, and an Obsidian-compatible knowledge vault.
Your AI conversations are a knowledge base. seCall makes them searchable, browsable, and interconnected.
- You've discussed architecture, debugging steps, and design decisions across hundreds of agent sessions — but they're scattered in opaque JSONL files.
- seCall turns those sessions into a structured, searchable knowledge graph you can query from any MCP-compatible AI agent or browse in Obsidian.
Parse and normalize sessions from multiple AI coding agents into a unified format:
| Agent | Format | Status |
|---|---|---|
| Claude Code | JSONL | ✅ Stable |
| Codex CLI | JSONL | ✅ Stable |
| Gemini CLI | JSON | ✅ Stable |
| claude.ai | JSON (ZIP) | ✅ New in v0.2 |
| ChatGPT | JSON (ZIP) | ✅ New in v0.2.3 |
- BM25 full-text search powered by SQLite FTS5 with Korean morpheme tokenization (Lindera ko-dic / Kiwi-rs selectable)
- Vector semantic search using Ollama BGE-M3 embeddings (1024-dim) + HNSW ANN index (usearch) for O(log n) lookups
- Reciprocal Rank Fusion (RRF) with independent BM25/vector execution (k=60) + session-level diversity (max 2 turns per session)
- LLM query expansion for natural language queries via Claude Code
Obsidian-compatible markdown vault with two layers:
vault/
├── raw/sessions/ # Immutable session transcripts
│ └── YYYY-MM-DD/ # Organized by date
├── wiki/ # AI-generated knowledge pages
│ ├── projects/ # Per-project summaries
│ ├── topics/ # Technical topic pages
│ └── decisions/ # Architecture decision records
└── graph/ # Knowledge Graph output
└── graph.json # Node/edge data
- Wiki generation via Claude Code meta-agent (
secall wiki update) - Obsidian backlinks (
[[]]) connecting sessions ↔ wiki pages - Frontmatter metadata for Dataview queries (
summaryfield for at-a-glance session identification)
Deterministically extract relationships between sessions to build a knowledge graph (no LLM calls needed):
- Node types: session, project, agent, tool — auto-extracted from frontmatter
- Edge types:
belongs_to,by_agent,uses_tool,same_project,same_day - Incremental builds: new sessions get nodes added; relation edges are fully recomputed for accuracy
- MCP tool:
graph_query— AI agents can explore session relationships (BFS, max 3 hops)
Expose your session index to any MCP-compatible AI agent:
# stdio mode (for Claude Code, Cursor, etc.)
secall mcp
# HTTP mode (for web clients)
secall mcp --http 127.0.0.1:8080Tools provided: recall, get, status, wiki_search, graph_query
Sync your knowledge vault across machines via Git:
# Full sync: git pull → reindex → ingest → wiki → graph → git push
secall sync
# Local-only mode (skip git, useful for Claude Code hooks)
secall sync --local-only- MD as source of truth — DB is a derived cache, fully recoverable via
secall reindex --from-vault - Host tracking — each session records which machine ingested it (
hostfield in frontmatter) - No conflicts — sessions are unique per device, so git merges are always clean
Built-in lint rules verify index ↔ vault consistency:
secall lint
# L001: Missing vault files
# L002: Orphan vault files
# L003: FTS index gaps- Rust 1.75+ (for building from source)
- At least one of: Claude Code, Codex CLI, Gemini CLI
- Ollama — for vector search (optional; BM25-only without it)
- Windows: MSVC toolchain (Visual Studio Build Tools)
From source:
git clone https://github.com/hang-in/seCall.git
cd seCall
cargo install --path crates/secallPre-built binaries (Releases):
- macOS:
secall-aarch64-apple-darwin.tar.gz/secall-x86_64-apple-darwin.tar.gz - Windows:
secall-x86_64-pc-windows-msvc.zip(secall.exe + onnxruntime.dll)
Windows users: Core features (parsing, BM25 search, vault, MCP) work identically. The following are disabled due to MSVC limitations:
- HNSW ANN index (
usearch) — falls back to BLOB cosine scan- Kiwi-rs morpheme analysis — falls back to Lindera ko-dic
# Interactive onboarding (recommended)
secall init
# Or specify arguments directly
secall init --vault ~/Documents/Obsidian\ Vault/seCall
secall init --git git@github.com:you/obsidian-vault.gitRunning secall init without arguments starts an interactive wizard:
- Vault path setup
- Git remote (optional)
- Tokenizer selection (lindera/kiwi)
- Embedding backend selection (ollama/none)
- Ollama installation check + automatic
bge-m3model pull
# Auto-detect Claude Code sessions
secall ingest --auto
# Codex CLI / Gemini CLI
secall ingest ~/.codex/sessions
secall ingest ~/.gemini/sessions
# claude.ai / ChatGPT export (ZIP)
secall ingest ~/Downloads/data-export.zip
# Or sync everything in one command
secall sync# BM25 full-text search
secall recall "BM25 indexing implementation"
# Filter by project, agent, date
secall recall "error handling" --project seCall --agent claude-code --since 2026-04-01
# Vector semantic search (requires Ollama)
secall recall "how does the search pipeline work" --vec
# LLM-expanded query
secall recall "improve search accuracy" --expand# Summary view
secall get <session-id>
# Full markdown content
secall get <session-id> --full
# Specific turn
secall get <session-id>:5For semantic search (--vec), vector indexes are needed. With Ollama installed, secall embed or secall sync will generate embeddings automatically.
# Embed new/changed sessions only
secall embed
# Re-embed all sessions
secall embed --all
# Performance tuning (recommended for M1 Max)
secall embed --concurrency 4 --batch-size 32To use ONNX Runtime instead:
secall config set embedding.backend ortthensecall model download.
# Claude Code analyzes sessions and generates wiki pages
secall wiki update
# Check wiki status
secall wiki status# Build entire graph
secall graph build
# View statistics
secall graph stats
# Export graph.json
secall graph exportManage settings via the secall config command. No need to edit config.toml directly.
# View current settings
secall config show
# Change a setting
secall config set output.timezone Asia/Seoul
secall config set search.tokenizer kiwi
secall config set embedding.backend ollama
# Show config file path
secall config path| Key | Description | Default |
|---|---|---|
vault.path |
Obsidian vault path | ~/obsidian-vault/seCall |
vault.git_remote |
Git remote URL | (none) |
vault.branch |
Git branch name | main |
search.tokenizer |
Tokenizer (lindera / kiwi) |
lindera |
search.default_limit |
Search result count | 10 |
embedding.backend |
Embedding backend (ollama / ort / none) |
ollama |
embedding.ollama_model |
Ollama model name | bge-m3 |
output.timezone |
Timezone (IANA) | UTC |
Config file location:
- macOS:
~/Library/Application Support/secall/config.toml - Linux:
~/.config/secall/config.toml - Windows:
%APPDATA%\secall\config.toml
| Command | Description |
|---|---|
secall init |
Interactive onboarding (vault, tokenizer, embedding setup) |
secall ingest [path] --auto |
Parse and index agent sessions |
secall sync [--local-only] [--no-wiki] |
Full sync: git pull → reindex → ingest → wiki → graph → git push |
secall recall <query> |
Hybrid search across sessions |
secall get <id> [--full] |
Retrieve session details |
secall status |
Index statistics + settings summary |
secall embed [--all] |
Generate vector embeddings |
secall lint |
Verify index/vault integrity |
secall mcp [--http <addr>] |
Start MCP server |
secall config show|set|path |
View/change settings |
secall graph build|stats|export |
Knowledge graph management |
secall wiki update|status |
Wiki generation/status |
secall model download|info|check |
ONNX model management |
secall reindex --from-vault |
Rebuild DB from vault |
secall migrate summary |
Backfill summary frontmatter |
Add to your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"secall": {
"command": "secall",
"args": ["mcp"]
}
}
}For auto-sync on session start/end:
{
"hooks": {
"PreToolUse": [{
"matcher": "Initialize",
"hooks": [{"type": "command", "command": "secall sync --local-only"}]
}],
"PostToolUse": [{
"matcher": "Exit",
"hooks": [{"type": "command", "command": "secall sync"}]
}]
}
}See GitHub Vault Sync Guide for detailed setup instructions.
┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Claude Code │ │ Codex CLI │ │Gemini CLI│ │claude.ai │ │ ChatGPT │
│ (JSONL) │ │ (JSONL) │ │ (JSON) │ │JSON (ZIP)│ │JSON (ZIP)│
└──────┬───────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │ │ │
└───────┬───────┴─────────────┴──────────────┴──────────────┘
│
┌─────▼──────┐
│ Parsers │ claude.rs / codex.rs / gemini.rs / claude_ai.rs / chatgpt.rs
└─────┬──────┘
│
┌─────────▼─────────┐
│ Unified Session │ Session → Turn → Action
└─────────┬─────────┘
│
┌────────────┼────────────┐
│ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ SQLite │ │ Vault │ │ Vector │
│ FTS5 │ │ (MD) │ │ Store │
│ BM25 │ │Obsidian │ │BGE-M3 │
└────┬────┘ └─────────┘ └────┬────┘
│ │
└───────────┬───────────┘
│
┌──────▼──────┐
│ Hybrid RRF │ k=60
└──────┬──────┘
│
┌────────┼────────┐
│ │ │
┌────▼──┐ ┌──▼───┐ ┌──▼──┐
│ CLI │ │ MCP │ │Wiki │
│recall │ │Server│ │Agent│
└───────┘ └──────┘ └─────┘
| Category | Technology |
|---|---|
| Language | Rust 1.75+ (2021 edition) |
| Database | SQLite with FTS5 (rusqlite, bundled) |
| Korean NLP | Lindera ko-dic + Kiwi-rs morpheme analysis (macOS/Linux) |
| Platforms | macOS, Windows (x86_64), Linux (CI) |
| Embeddings | Ollama BGE-M3 (1024-dim) / ONNX Runtime (optional) |
| ANN Index | usearch HNSW (macOS/Linux) |
| MCP Server | rmcp (stdio + Streamable HTTP via axum) |
| Vault | Obsidian-compatible Markdown |
| Wiki Engine | Claude Code meta-agent |
This project is built on ideas from:
- LLM Wiki by Andrej Karpathy — The pattern of using LLMs to incrementally build a persistent, interlinked knowledge base from raw sources. seCall's two-layer vault architecture (raw sessions + AI-generated wiki) directly implements this concept. See also Tobi Lütke's implementation.
- qmd by Tobi Lütke — A local search engine for markdown files with hybrid BM25/vector search. seCall's search pipeline (FTS5 BM25, vector embeddings, RRF k=60) was designed with reference to qmd's approach.
- graphify by Safi Shamsi — Turns file folders into queryable knowledge graphs. seCall P16's deterministic graph extraction and confidence labeling were inspired by this project.
This project was developed using AI coding agents (Claude Code, Codex) orchestrated via tunaFlow, a multi-agent workflow platform.
| Date | Version | Changes |
|---|---|---|
| 2026-04-10 | P17 | Interactive onboarding (secall init wizard), secall config CLI, git branch configuration |
| 2026-04-10 | P16 | Knowledge Graph — deterministic graph extraction from frontmatter, secall graph build/stats/export, MCP graph_query, sync Phase 3.7 |
| 2026-04-09 | P15 | Windows runtime fixes — Ollama NaN tolerance, cross-platform command_exists, sync conflict preflight |
| 2026-04-09 | P14 | Search quality — independent vector execution, session-level result diversity |
| 2026-04-09 | P13 | Windows build support — x86_64-pc-windows-msvc CI/Release, ORT DLL bundling |
| 2026-04-09 | v0.2.3 | ChatGPT export parser — conversations.json (ZIP), mapping tree linearization |
| 2026-04-08 | v0.2.2 | Timezone configuration — IANA timezone conversion for vault timestamps |
| 2026-04-08 | v0.2.1 | --force re-ingest + Dataview :: escaping + AGPL-3.0 LICENSE |
| 2026-04-07 | P11 | Embedding performance — ORT session pool, batch inference, parallelism (49h → ~3-4h) |
| 2026-04-07 | P10 | Session summary frontmatter — auto-generated from first user turn |
| 2026-04-06 | P8 | Stabilization + GitHub Actions release workflow |
| 2026-04-06 | P7 | --min-turns, embed --all, wiki_search MCP tool, --no-wiki |
| 2026-04-05 | v0.2 | claude.ai export parser, ZIP auto-extraction |
| 2026-04-05 | P6 | ANN index (usearch HNSW) |
| 2026-04-04 | P5 | Multi-device vault Git sync, secall sync, reindex --from-vault |
| 2026-03-31 | MVP | Initial release — Claude Code/Codex/Gemini parsers, BM25+vector search, MCP server, Obsidian vault |
Contact: d9ng@outlook.com
