JSPM

@vboctor/fink

0.10.8
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q80187F
  • License MIT

Frozen Ink CLI — crawl, sync, search, and publish local data replicas

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@vboctor/fink) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    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 install -g @vboctor/fink

    Requires 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:

    fink

    Publishing 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-repo

    Published 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-notes

    Behavior notes:

    • MCP clients launch fink mcp serve on demand; you do not run a background MCP server.
    • One MCP connection is created per (tool, collection):
      • Add my-repo then my-notes => 2 connections
      • Add my-repo my-notes together => also 2 connections
    • --http links the remote HTTP endpoint of a published collection instead of local stdio. The password defaults to the one stored in credentials.yml during fink publish.
    • --tool codex-cli is the canonical Codex option; --tool codex remains a legacy alias.
    • ChatGPT Desktop uses a remote MCP endpoint flow. fink mcp add --tool chatgpt-desktop returns 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 level

    Data 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