A lightweight web-based documentation browser for markdown files.
Single binary, zero dependencies. Scan multiple directories, search across all documents, and present them in a clean, organized web interface.
$ ./dimandocs
Starting server on port 8090
Found 42 documents
$ xdg-open http://localhost:8090Stop scattering documentation across wikis, Docusaurus pages, and shared drives. The best documentation lives right next to the code it describes.
Each module has its own README.md explaining what it does and how to use it.
Docs evolve with code. When you update a feature, the docs are right there to update too.
Developers find docs exactly where they expect them - in the codebase.
Everything you need to browse and search your markdown documentation.
All templates embedded. No external files needed. Just copy the binary and config file anywhere.
Monitor multiple directories simultaneously with flexible regex patterns for file matching.
Chat with your documentation using Claude via Model Context Protocol integration.
Vector-based search using OpenAI, Voyage AI, or Ollama embeddings for intelligent results.
Responsive grid layout with grouped display and full markdown rendering using Blackfriday.
Pure Go application. No Node.js, no Docker, no external services required.
Chat with your documentation using Claude via Model Context Protocol. Enable semantic search with vector embeddings from multiple providers.
DimanDocs can run as an MCP (Model Context Protocol) server, allowing Claude CLI or Claude Desktop to search and read your documentation directly. This enables natural language questions about your docs.
# Run as MCP server (for Claude CLI/Desktop)
./dimandocs --mcp dimandocs.json
# Run web server with embeddings (normal mode)
./dimandocs dimandocs.jsonBest quality embeddings
text-embedding-3-large 3072dtext-embedding-3-small 1536dOPENAI_API_KEYOptimized for code
voyage-3 1024dvoyage-code-3 1024dvoyage-3-lite 512dVOYAGE_API_KEYFree, local, private
nomic-embed-text 768dmxbai-embed-large 1024d{
"directories": [...],
"embeddings": {
"enabled": true,
"provider": "ollama",
"model": "nomic-embed-text"
},
"mcp": {
"enabled": true,
"transport": "stdio"
}
}No API key required
{
"mcpServers": {
"dimandocs": {
"command": "/path/to/dimandocs",
"args": ["--mcp", "dimandocs.json"]
}
}
}Get up and running in under a minute.
# Download from GitHub Releases
curl -L -o dimandocs \
https://github.com/adubovskoy/dimandocs/releases/latest/download/dimandocs-linux-amd64
chmod +x dimandocs# Create dimandocs.json in your project root
cat << 'EOF' > dimandocs.json
{
"directories": [
{
"path": "./docs",
"name": "Documentation",
"file_pattern": "\\.md$"
}
],
"port": "8090",
"title": "My Docs"
}
EOF./dimandocs
# Starting server on port 8090
# Found 15 documents
# Open in browser
open http://localhost:8090git clone https://github.com/adubovskoy/dimandocs.git
cd dimandocs
go build
./dimandocsFlexible JSON-based configuration for your documentation structure.
{
"directories": [
{
"path": "./docs/ADRs",
"name": "Architecture Decision Records",
"file_pattern": "\\.md$"
},
{
"path": "./modules",
"name": "Module Documentation",
"file_pattern": "^(?i)(readme\\.md)$"
}
],
"port": "8090",
"title": "My Documentation",
"ignore_patterns": [
".*/node_modules/.*",
".*/\\.git/.*",
".*/vendor/.*"
]
}Basic setup without semantic search
Array of directory configs with path, name, and file_pattern (regex).
Web server port. Default: "8090"
Application title shown in the UI.
Regex patterns for paths to skip (node_modules, .git, vendor, etc.)
\\.md$ - All markdown files^(?i)(readme\\.md)$ - Only README.md^(?i)(readme|contributing)\\.md$ - README or CONTRIBUTINGSimple, fast, and efficient document discovery.
Loads configuration, compiles regex patterns, and prepares the embedded templates.
Recursively walks configured directories, applies ignore patterns, and matches files against your regex patterns.
Extracts titles from # Heading, overview paragraphs from ## Overview, and normalizes paths.
Serves a responsive web interface with grouped documents, full-text search, and rendered markdown using Blackfriday.
Simple REST API for programmatic access.
/ Index page with all documents grouped by directory/doc/{path} View individual document with rendered markdown/api/search?q={query} Search across all documents (JSON response)