npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hiai-gg/docsmint

v0.8.8

Published

DocsMint SDK and CLI plus a self-hosted MCP stdio bridge that uses your API key. For DocsMint Cloud MCP, connect to https://docsmint.com/mcp.

Readme

DocsMint

Turn your documents into knowledge you and your AI agents can use.

Write and organize notes, guides, and project documentation in one workspace. Find answers with search that understands related concepts, then give your agents access to the same documents through MCP, REST, the SDK, or CLI.

Connect DocsMint Cloud to get started without operating the stack, or self-host with Docker to run the Apache-2.0 application on your own infrastructure.

Apache-2.0 License Release npm Docker Pulls Stars CI Bun TypeScript Svelte Elysia Tailwind_CSS Drizzle_ORM PRs Welcome MCP Badge DocsMint Cloud MCP Registry

Connect your AI agent

Connect DocsMint Cloud instantly or use your own self-hosted deployment. Search, read, create, organize and update persistent knowledge through MCP with hybrid retrieval, reranking and GraphRAG.

Recommended: DocsMint Cloud setup. No server installation is required. Sign up or log in, choose your workspace, create an MCP/API credential in the authenticated browser UI, follow your client's instructions, and verify the connection. Hosted MCP follows your plan and workspace permissions. Prefer workspace-bound or category-scoped credentials.

The Cloud endpoint is https://docsmint.com/mcp (Streamable HTTP). OAuth-capable clients discover the hosted resource and authorization-server metadata; the current authorization metadata advertises client registration at https://docsmint.com/oauth/register (DCR). The hosted flow uses authorization-code PKCE S256; metadata advertises only the authorization_code grant and no token endpoint client authentication. CIMD is not part of the current contract. Browser consent binds the one-hour opaque access token to the selected workspace, optional category, and requested scopes. Refresh tokens are not issued. API-key clients can instead send Authorization: Bearer <key> with an MCP/API credential created in the authenticated browser UI. Credentials cannot create or elevate other credentials; lifecycle management belongs to the signed-in browser session.

Self-hosted alternative: run DocsMint with Docker, create an API key in its browser UI, and configure HIAI_DOCS_URL and HIAI_DOCS_API_KEY for npx --yes --package @hiai-gg/docsmint docsmint-mcp. The npm package is a stdio bridge to your own API, not a server installer or hosted OAuth server. See the MCP guide for client configuration.

Why DocsMint?

  • Keep knowledge easy to edit. Use a rich visual editor or Markdown; organize documents with folders, categories, and tags.
  • Find the document you mean. Search combines keywords, meaning, typo tolerance, and graph relationships across languages.
  • Keep agents close to the source. Let your tools search, read, and update the same knowledge through MCP, REST, a typed SDK, and CLI.
  • Choose what an integration can access. Category keys grant explicit read, edit, and write permissions for a defined part of your library.
  • Keep retrieval up to date. Document edits and metadata changes refresh the search index automatically in the background.
  • Choose how you run it. Use managed DocsMint or self-host the application, database, search, queues, and files.

What's new in 0.8.8?

  • Clarify that hosted MCP authorization belongs to DocsMint Cloud and that the stdio bridge uses an API key to connect to your own DocsMint API.
  • Synchronize MCP Registry and LobeHub descriptions with the current Cloud authorization contract and the self-hosted boundary.
  • Keep the published catalog aligned with the implementation: 21 tools, 2 prompts, and 3 resources, with regression checks for route and metadata drift.
  • Update vulnerability reporting details and clarify that OAuth protocol flaws remain in scope for the product where they occur.

No MCP capabilities, existing integrations, or database schema change in this release. See the release notes and changelog.

Install with an AI agent

Prefer an assisted self-hosted setup? Give your coding agent this prompt. You will need Docker and a choice of AI provider.

Install DocsMint from https://github.com/HiAi-gg/docsmint.
Verify Docker and Docker Compose v2, clone the repository, and run
`bash scripts/quickstart.sh`. Do not print or commit .env. Ask me to enter only
an OpenRouter key or select Ollama, then run quickstart again. Verify
http://localhost:50701, http://localhost:50700/api/health, and
`docker compose ps`. Do not replace Bun, rewrite migrations, disable GraphRAG,
or delete volumes.

After startup, open http://localhost:50701 and create the first account. For manual installation, use the Docker quickstart below.

Quickstart

Requirements

  • Docker Engine or Docker Desktop
  • Docker Compose v2
  • One of:

Start with Docker

git clone https://github.com/HiAi-gg/docsmint.git
cd docsmint
bash scripts/quickstart.sh

On its first run, the script creates an ignored root .env, generates the database, authentication, and storage secrets, builds the PostgreSQL image, applies migrations, and starts the complete application.

Published application images are on Docker Hub. There is no untagged latest image; pull the role-specific tags:

docker pull vgalibov/docsmint:api-latest
docker pull vgalibov/docsmint:web-latest
docker pull vgalibov/docsmint:caddy-latest

Use versioned tags api-v0.8.8, web-v0.8.8, and caddy-v0.8.8 for reproducible deploys. Caddy is the supporting reverse proxy with rate limiting; it is separate from the API and web application. The quickstart still builds the Compose stack from this repository so PostgreSQL, Redis, and SeaweedFS start together with the application.

For OpenRouter, add one value to .env and run the script again:

OPENROUTER_API_KEY=sk-or-your-key

For Ollama, select the local provider instead:

AI_PROVIDER=ollama
OLLAMA_PORT=11434

Then make sure the configured local models are available:

ollama pull bge-m3
ollama pull qwen3:8b
bash scripts/quickstart.sh

Open http://localhost:50701. The API health endpoint is http://localhost:50700/api/health.

First use

  1. Create your account in the web application.
  2. Create a category or folder and add or import a document.
  3. Wait for the document pipeline to finish chunking and embedding.
  4. Search using an exact phrase, a related concept, an alternate language, or a misspelling.
  5. Open Settings → API when you want to connect a CLI, MCP client, or external application.

The canonical local ports are:

| Service | Port | | -------------------- | ------: | | Web application | 50701 | | REST API | 50700 | | PostgreSQL | 5437 | | Redis | 6384 | | SeaweedFS S3 gateway | 50702 | | SeaweedFS filer UI | 50703 |

See Deployment for domains, TLS, provider tuning, backups, and production operation.

Embedding provider URLs, models, and credentials are deployment configuration. They are never stored in browser settings or local storage.

Use DocsMint from the terminal

One public package, @hiai-gg/docsmint, includes the TypeScript SDK, docsmint CLI, and docsmint-mcp bridge. These clients connect to a running DocsMint deployment; use the Docker quickstart to install the self-hosted server.

bun add @hiai-gg/docsmint
bunx --package @hiai-gg/docsmint docsmint init \
  --url http://localhost:50700 \
  --key 'your-global-or-category-key'

bunx --package @hiai-gg/docsmint docsmint search "project architecture"
bunx --package @hiai-gg/docsmint docsmint list
bunx --package @hiai-gg/docsmint docsmint read <document-id>
bunx --package @hiai-gg/docsmint docsmint create \
  --title "Release notes" --content "# Highlights"

Credentials can also be supplied through HIAI_DOCS_URL and HIAI_DOCS_API_KEY. See the CLI guide for every command and configuration precedence.

Connect an MCP client

Give agents a secure path to search, read, and maintain your knowledge without database or filesystem access. DocsMint publishes 21 tools plus ready-made research prompts, scoped resources, and a document-manager skill.

Hosted DocsMint

Connect directly to the managed Streamable HTTP endpoint. Keep the API key in an environment variable rather than writing it into client configuration:

codex mcp add docsmint \
  --url https://docsmint.com/mcp \
  --bearer-token-env-var HIAI_DOCS_API_KEY

Self-hosted DocsMint

Run the published stdio bridge against your own DocsMint API:

{
  "mcpServers": {
    "docsmint": {
      "command": "npx",
      "args": ["--yes", "--package", "@hiai-gg/docsmint", "docsmint-mcp"],
      "env": {
        "HIAI_DOCS_URL": "http://localhost:50700",
        "HIAI_DOCS_API_KEY": "your-global-or-category-key"
      }
    }
  }
}

Category keys let you expose only the documents and operations an agent needs. Use a global key only for trusted owner-wide automation. See the complete MCP reference for Bun, npm, local checkout, all tools, prompts, resources, permissions, and REST mappings.

TypeScript SDK

bun add @hiai-gg/docsmint
import { DocsClient } from '@hiai-gg/docsmint';

const docs = new DocsClient({
  baseUrl: 'http://localhost:50700',
  apiKey: process.env.HIAI_DOCS_API_KEY,
});

const created = await docs.createDoc({
  title: 'Meeting notes',
  content: '# Agenda',
});

const results = await docs.search('what did we decide?');
console.log(created.id, results.items);

The SDK is a typed fetch client with retries for transient failures and idempotent document creation retries. See the SDK reference and REST API.

API keys and integrations

Create and revoke integration keys from Settings → API.

| Credential | Intended use | Access | | -------------- | -------------------------------------------- | -------------------------------------- | | Global API key | Trusted owner-wide CLI, MCP, SDK, or service | All owner content | | Category key | Least-privilege agent or product integration | One category with selected permissions | | Operator key | Administration and reindex operations | /api/admin/* only |

Category permissions are explicit and non-hierarchical:

  • read permits list, read, search, and export;
  • edit permits updates to existing content, attachments, and versions;
  • write permits create, move, delete, share, and publish operations.

Combine permissions when an integration needs more than one capability. API-key lifecycle operations require the owning browser session; an API key cannot create or elevate another key. Server-to-server integrations are not affected by browser CORS. Browser integrations must add their exact origin to CORS_ORIGINS.

What is included?

Documents use structured TipTap JSON as canonical content. Markdown is the source-editing, import, and export format. The same document store serves the web application and public integration interfaces.

frontend/          SvelteKit workspace and TipTap editor
backend/           Elysia REST API, search, workers, and authentication
packages/db/       Drizzle schema and migrations
packages/sdk/      Typed API client
packages/cli/      Terminal client
packages/mcp-server/  MCP stdio server
postgres/          PostgreSQL image with vector and graph extensions

The Docker deployment runs:

  • Web — document editor, folders, categories, sharing, settings, and search;
  • API — documents, attachments, versions, keys, search, and administration;
  • PostgreSQL 18 — relational data, pgvector/pgvectorscale vectors, and the Apache AGE graph in one database;
  • Redis 8 — BullMQ queues, caching, retries, and job recovery;
  • SeaweedFS — S3-compatible attachment storage.

How search works

Every document save schedules background work. Content is chunked, changed chunks are embedded, and the completed generation is activated atomically. The previous valid generation remains searchable if a provider call fails.

Search combines exact title matches, multilingual lexical search, typo-tolerant fuzzy matching, semantic vectors, adaptive query expansion, and Apache AGE graph neighbors. Reciprocal rank fusion combines the channels without allowing one weak provider result to dominate. A cross-encoder then reranks the fused prefix against the original query (Voyage rerank-2.5 by default). On a labeled 24-document corpus that moved MRR 0.969 → 1.000 and nDCG@10 0.958 → 0.986 versus RRF-only. Rerank, expansion, embeddings, and AGE failures keep the remaining channels. Authorization is applied before retrieval and again before results are returned.

GraphRAG is part of the normal search path in the reference configuration. It extracts entities after embeddings are ready and finds related documents beyond direct keyword or vector similarity. It degrades gracefully when an external model is unavailable.

For pipeline internals and tuning, see Architecture and Deployment.

Stack

  • Bun 1.4.0+, TypeScript, Elysia, Zod, and Pino
  • Svelte 5, SvelteKit, Tailwind CSS, and TipTap
  • Better Auth and Drizzle ORM
  • PostgreSQL 18, pgvector, pgvectorscale, and Apache AGE
  • Redis 8 and BullMQ
  • SeaweedFS with its S3-compatible API
  • OpenAI-compatible providers through OpenRouter or local Ollama

Documentation

Development

Use Bun 1.4.0 or later for local development.

bun install
bun run lint
bun run typecheck
bun run test
bun run build

Read CONTRIBUTING.md before opening a pull request. Please report vulnerabilities through SECURITY.md, not a public issue.

License

DocsMint is released under the Apache License 2.0.

Built as an independent open-source project in the HiAi ecosystem.