Via
Enables routing context and execution across AI tools like Claude, Cursor, Windsurf, and ChatGPT with a shared memory, task board, and context bus, plus local file conversion.
README
Via — by Vektor Memory
Route anything. Remember everything. Works everywhere.
https://medium.com/@vektormemory/all-roads-lead-to-ai-rome-1c601f1ec440
<img width="1077" height="404" alt="image" src="https://github.com/user-attachments/assets/b6d5ceac-a246-4f75-9e9a-181d5252e087" />
Via is the universal integration layer for AI tools. One CLI that connects Claude, Cursor, Windsurf, and ChatGPT to a shared memory, task board, and context bus — so your work follows you across every tool, every session, every machine.
Part of the Vektor ecosystem alongside Vex and Slipstream.
The problem
Every AI tool remembers inside its own walls. Claude forgets what you did in Cursor. Cursor forgets what you built in Windsurf. The moment you switch tools — or open a new session — context resets to zero.
Via is the bus between them.
<img width="1040" height="535" alt="image" src="https://github.com/user-attachments/assets/4966388f-75db-413b-bc12-9e2427e078fb" /> <img width="1068" height="439" alt="via research " src="https://github.com/user-attachments/assets/2085f5d9-4fc3-4477-93ac-be9b9dd1b023" /> <img width="1056" height="572" alt="via research 2" src="https://github.com/user-attachments/assets/f60cd55f-71e8-4f90-a6ca-5a8bf6b7769b" />
Install
npm install -g @vektormemory/via
via --help
Requirements: Node.js >= 18. No native dependencies.
What makes Via different
via diff — Compare AI tools side by side
The feature no other tool has. Ask the same question to Claude and Cursor, then see exactly where they agree, diverge, and what unique concepts each one brought.
via diff "explain microservices"
via diff add claude "Microservices split apps into small independent services..."
via diff add cursor "Microservices are small focused services that communicate via APIs..."
via diff show
┌─ DIFF — explain microservices ────────────────
│ claude 12 words
│ cursor 14 words
│ similarity 21% word overlap
│
│ claude | cursor
│ ────────────────────────────── | ──────────────────────────────
│ Microservices split apps into | Microservices are small focused
│ small independent services... | services that communicate via...
│
│ claude unique terms independent, database
│ cursor unique terms focused, communicate, deployed
└───────────────────────────────────────────────
via memory — Relationship-aware code indexing
Point at any folder and Via extracts symbols, imports, and function definitions from 10+ languages — then builds an import graph in SQLite. Search traverses relationships, not just text.
via memory add --file ./src/
# → extracts symbols + import edges from JS/TS/Python/Go/Rust
# → via memory search "auth" returns auth.js + every file that imports it
┌─ MEMORY — SEARCH: auth ───────────────────────
│
│ Direct matches (2 files)
│ ● auth.js ./src/auth.js
│ ● config.js ./src/config.js
│
│ Related via imports (3 files)
│ ○ server.js ./src/server.js
│ ○ middleware.js ./src/middleware.js
│ ○ routes.js ./src/routes/auth.js
└───────────────────────────────────────────────
No embeddings. No API calls. Pure local SQLite graph.
via convert — Local file conversion pipeline
Convert any file locally — audio, video, images, documents, archives — powered by FFmpeg, ImageMagick, Pandoc, and LibreOffice. Nothing uploaded anywhere. Pipe output directly into via memory with --ingest.
via convert ./report.pdf --to md # pdf → markdown
via convert ./recording.mp3 --to txt # audio → transcript
via convert ./video.mp4 --to gif # video → gif
via convert ./doc.docx --to pdf # office → pdf
via convert ./report.pdf --to md --ingest # convert + store in memory
via convert --check # check installed tools
via convert --formats # all supported formats
┌─ CONVERT — TOOL CHECK ────────────────────────
│ FFmpeg installed audio/video
│ ImageMagick installed images
│ Pandoc installed documents
│ LibreOffice installed office docs
│ Poppler installed pdf→txt
│ Zip installed archives
│ 7-Zip installed 7z archives
└───────────────────────────────────────────────
Commands
via init
Wire via into every AI tool detected — one command, fully configured.
via init # writes MCP config for Claude Desktop, Cursor, Windsurf
via init --dry-run # preview what would be written
via memory
Fact storage + relationship-aware codebase indexing.
via memory add "JWT tokens expire in 1h" # store a fact
via memory add --file ./src/ # index a codebase
via memory search "auth" # search + related files
via memory graph # show import relationships
via memory list # list indexed files + facts
via convert
Local file conversion. No uploads. Optional memory pipeline.
via convert <file> --to <format> # convert a file
via convert <file> --to md --ingest # convert + store in memory
via convert --check # check installed tools
via convert --formats # show all supported formats
Supported formats:
Images png jpg webp gif bmp tiff ico svg → png jpg webp gif bmp tiff ico pdf
Audio mp3 wav ogg m4a aac flac aiff wma → mp3 wav ogg m4a aac flac aiff
Video mp4 mkv mov avi webm flv wmv → mp4 mkv mov avi webm gif mp3
Documents md rst html txt tex org epub → md html txt pdf epub docx odt
Office docx doc odt rtf xlsx pptx → pdf txt html odt docx
PDF pdf → txt md html docx
Archives any file or folder → zip tar.gz 7z
External tools required: FFmpeg, ImageMagick, Pandoc, LibreOffice, Poppler, 7-Zip.
via task
Shared persistent task board any AI tool can read and write via MCP.
via task add "refactor auth module" --high
via task
via task done <id>
via task start <id>
via log
Unified activity log. Auto-captures Claude Code sessions.
via log "decided to use postgres" --tool claude
via log --scan # one-shot capture of all Claude Code sessions
via log --watch # live capture as sessions complete
via log --today
via log search "postgres"
via ask
Route a question to the right AI tool — and open it.
via ask "should I use postgres or sqlite?" # opens recommended tool
via ask "refactor auth module" --tool cursor # force a specific tool
via ask "explain this architecture" --no-open # recommend only
via diff
Compare what two AI tools said about the same prompt.
via diff "your prompt" # register a new prompt
via diff add claude "..." # store Claude's response
via diff add cursor "..." # store Cursor's response
via diff show # side-by-side + unique terms
via diff list # all saved comparisons
via handoff
Export your full working state before switching tools.
via handoff --export # saves .vstate.json
via handoff --import ./sprint3.vstate.json # restore on any machine
via handoff --list
via serve
Run Via as an MCP server. Claude Desktop, Cursor, and Windsurf can call via tools natively.
via serve # stdio (Claude Desktop, Cursor)
via serve --sse # HTTP+SSE mode
Claude Desktop config:
{
"mcpServers": {
"via": { "command": "via", "args": ["serve"] }
}
}
Or just run via init — it writes this automatically.
MCP Tools (via serve)
When running as an MCP server, Claude Desktop and Cursor can call:
via_task_list List open tasks
via_task_add Add a task
via_task_done Mark task done
via_memory_add Store a fact
via_memory_search Search stored facts (relationship-aware)
via_log Log a decision or event
via_context Pull formatted memory context
via_status Ecosystem health check
Vektor ecosystem
Via Route context and execution across all AI tools
Vex Migrate agent memory between vector stores
Slipstream Graph memory, vector search, multimodal
Via uses SQLite locally. No embeddings, no API calls for indexing. When you need semantic search, graph traversal, or team-shared context — upgrade to Vektor Slipstream.
Roadmap
v0.3 — current
via init,via memory,via convert,via task,via log,via ask,via diff- Relationship-aware codebase indexing — symbols + import graph in SQLite
- Local file conversion pipeline — FFmpeg, Pandoc, LibreOffice, ImageMagick
- Claude Code session auto-capture
- MCP server with 8 tools
- Claude Desktop, Cursor, Windsurf support
v0.4 — coming
via memorysemantic search upgrade via Slipstream- Team-shared task board
via diff --livereal-time comparisonvia convertbatch mode — convert entire folders
License
Apache 2.0 — free forever. Built by Vektor Memory.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。