@vboctor/fink
v0.10.9
Published
Frozen Ink CLI — crawl, sync, search, and publish local data replicas
Maintainers
Readme
@vboctor/fink
Frozen Ink CLI — crawl, sync, search, and publish local data replicas from GitHub, Obsidian, Git repos, and MantisHub.
Frozen Ink creates a unified, queryable, markdown-native workspace from your data sources. It stores everything in local SQLite with full-text search, renders Obsidian-compatible markdown, and optionally publishes to Cloudflare as a password-protected website with MCP access for AI tools.
Install
npm (recommended)
npm install -g @vboctor/finkRequires Node.js >= 20.
Quick Start
# Help
fink --help
# Initialize (creates ~/.frozenink/)
fink init
# Add a GitHub repository
fink add github --name my-repo --token ghp_xxx --repo owner/repo
# Add a local Obsidian vault
fink add obsidian --name my-notes --path ~/Documents/MyVault
# Add a local Git repo
fink add git --name my-code --path ~/projects/my-project
# Sync everything
fink sync "*"
# Check status
fink status
# Search across all collections
fink search "authentication bug"Interactive TUI
Running fink without arguments launches the interactive TUI:
finkPublishing to Cloudflare
Here are the steps to publish to Cloudflare:
# Authenticate with Cloudflare first
npx wrangler login
# Publish a collection (worker name = collection name)
# password is optional.
fink publish my-repo --password secret123
# Update an existing deployment
fink publish my-repo
# Remove
fink unpublish my-repoPublished collections include:
- Web UI for browsing synced data
- Full-text search
- MCP endpoint for AI assistants at
https://my-collection.my-account.workers.dev/mcp
MCP Server
Frozen Ink includes an MCP server for AI tools (Claude, Codex CLI, etc.):
# Link a local collection to Claude Code (stdio transport)
fink mcp add --tool claude-code my-vault
# Link multiple collections at once
fink mcp add --tool claude-code my-repo my-notes
# Link a published collection via its remote HTTP endpoint
fink mcp add --tool claude-code my-vault --http
# Link to Claude Desktop
fink mcp add --tool claude-desktop my-vault
# Link to Codex CLI (legacy alias: codex)
fink mcp add --tool codex-cli my-vault
# List link status
fink mcp list --tool claude-code
# Remove a single collection link
fink mcp remove --tool claude-code my-repo
# MCP stdio command used by clients
fink mcp serve --collection my-notesBehavior notes:
- MCP clients launch
fink mcp serveon demand; you do not run a background MCP server. - One MCP connection is created per
(tool, collection):- Add
my-repothenmy-notes=> 2 connections - Add
my-repo my-notestogether => also 2 connections
- Add
--httplinks the remote HTTP endpoint of a published collection instead of local stdio. The password defaults to the one stored incredentials.ymlduringfink publish.--tool codex-cliis the canonical Codex option;--tool codexremains a legacy alias.- ChatGPT Desktop uses a remote MCP endpoint flow.
fink mcp add --tool chatgpt-desktopreturns setup guidance instead of writing local client config.
TUI path: open fink -> Collections -> select a collection -> press [m] for MCP actions.
Tools: collection_list, entity_search, entity_get_data, entity_get_markdown, entity_get_attachment
Configuration
Configuration is stored in ~/.frozenink/config.json:
fink config set sync.interval 1800 # sync every 30 minutes
fink config set sync.concurrency 2 # parallel sync workers
fink config set sync.retries 5 # retry count
fink config set logging.level debug # log levelData Storage
All data is stored locally in ~/.frozenink/:
~/.frozenink/
frozenink.yml # app configuration
collections/
<name>/
<name>.yml # collection config (crawler, credentials, publish state)
db/data.db # SQLite database (entities, sync state, FTS5)
content/ # rendered markdown files
attachments/ # binary files (images, etc.)License
MIT
