Beautiful, template-driven technical documentation β fast.
Quick Start β’ Features β’ Templates β’ Documentation β’ Contributing
DocLoom is a powerful documentation generator that transforms your scattered technical materials into professional, branded documents. By combining structured templates with AI assistance, it produces consistent, high-quality documentation that's ready to print, share, and iterate.
- π¨ Professional Templates - Pre-built templates for architecture visions, technical debt summaries, and reference architectures
- π€ AI-Powered Generation - Intelligent content generation using OpenAI, Azure, Claude, or local LLMs
- π Multi-Source Processing - Ingest Markdown, text files, PDFs, and other documents as source material
- π Smart Content Assembly - Automatically extracts and organizes relevant information from your sources
- π Structured Output - Generates beautiful HTML with embedded styles and JSON sidecars for traceability
- π§ Flexible Configuration - YAML configs, environment variables, and CLI flags for complete control
- π Production Ready - Battle-tested with comprehensive test coverage and CI/CD pipeline
- π³ Docker Support - Run anywhere with our official Docker images
- π¬ C# Code Analysis - Built-in Go-native C# analyzer with no external dependencies (NEW!)
Get up and running in 30 seconds:
# Install via Go
go install github.com/karolswdev/docloom/cmd/docloom@latest
# Or download the latest binary
curl -L https://github.com/karolswdev/docloom/releases/latest/download/docloom_$(uname -s)_$(uname -m).tar.gz | tar xz
sudo mv docloom /usr/local/bin/
# Generate your first document
export OPENAI_API_KEY="your-api-key"
docloom generate --type architecture-vision --source ./docs --out my-vision.html
# Open the result
open my-vision.html # macOS
# xdg-open my-vision.html # Linux
# start my-vision.html # WindowsThat's it! You've just created a professional architecture vision document.
- Installation
- Usage
- Research Agents
- Configuration
- Templates
- Architecture
- Development
- Contributing
- License
Download pre-built binaries for your platform from our GitHub Releases.
# Download the latest release (replace VERSION and PLATFORM)
VERSION=$(curl -s https://api.github.com/repos/karolswdev/docloom/releases/latest | grep tag_name | cut -d '"' -f 4)
PLATFORM=$(uname -s)_$(uname -m)
curl -L "https://github.com/karolswdev/docloom/releases/download/${VERSION}/docloom_${PLATFORM}.tar.gz" | tar xz
# Move to PATH
sudo mv docloom /usr/local/bin/
# Verify installation
docloom --versionDownload the .zip file from the releases page, extract it, and add to your PATH.
# Pull the latest image
docker pull ghcr.io/karolswdev/docloom:latest
# Run with your local files
docker run --rm \
-v $(pwd):/workspace \
-e OPENAI_API_KEY="$OPENAI_API_KEY" \
ghcr.io/karolswdev/docloom:latest generate \
--type architecture-vision \
--source /workspace/docs \
--out /workspace/output.htmlRequires Go 1.22 or later:
# Clone and build
git clone https://github.com/karolswdev/docloom.git
cd docloom
make build
# Install to $GOPATH/bin
make install
# Or use go install directly
go install github.com/karolswdev/docloom/cmd/docloom@latestDocLoom ships with professional templates ready to use:
- Architecture Vision - Document system architecture, decisions, and roadmap
- Technical Specification - Detailed technical documentation with requirements
- Simple Documentation - Clean, general-purpose template
Templates are located in the templates/ directory. Each template includes:
- HTML structure with data-field placeholders
- Professional CSS styling
- YAML configuration with field schemas
- AI analysis prompts for intelligent generation
# Use built-in template
docloom generate --type architecture-vision --source ./docs --out output.html
# Use custom template directory
docloom generate --template-dir ./my-templates --type custom --source ./docs --out output.html- Create a new directory in
templates/ - Add
template.htmlwith data-field placeholders - Add
style.cssfor styling - Add
template.yamlfor configuration (optional)
See templates/README.md for a complete guide on creating custom templates.
# Show help and available commands
docloom --help
# Display version information
docloom version
# List available templates
docloom templates list
# Show detailed template information
docloom templates describe architecture-vision# Basic generation with environment variable API key
export OPENAI_API_KEY="your-api-key"
docloom generate \
--type architecture-vision \
--source ./project-docs \
--out architecture.html
# Using multiple source directories
docloom generate \
--type technical-debt-summary \
--source ./docs --source ./issues --source ./notes.md \
--out debt-report.html
# With specific model and temperature
docloom generate \
--type reference-architecture \
--source ./specs \
--model gpt-4 \
--temperature 0.3 \
--out reference.htmlPreview what DocLoom will do without making API calls:
# See the assembled prompt and selected source chunks
docloom generate \
--type architecture-vision \
--source ./docs \
--out output.html \
--dry-run
# Combine with verbose mode for maximum detail
docloom generate \
--type architecture-vision \
--source ./docs \
--out output.html \
--dry-run \
--verboseResearch Agents are external programs that analyze your code and produce documentation artifacts before the main generation process:
# Run a research agent before generating documentation
docloom generate \
--agent code-analyzer \
--source ./src \
--type technical-report \
--out analysis.html
# Pass parameters to the agent
docloom generate \
--agent research-agent \
--source ./project \
--agent-param "depth=3" \
--agent-param "include_tests=true" \
--type architecture-vision \
--out vision.html
# List available agents
docloom agents list
# Show details about a specific agent
docloom agents describe code-analyzer# Force overwrite existing files
docloom generate \
--type architecture-vision \
--source ./docs \
--out output.html \
--force
# Using Azure OpenAI
docloom generate \
--type architecture-vision \
--source ./docs \
--model gpt-35-turbo \
--base-url https://myinstance.openai.azure.com \
--api-key "azure-key" \
--out output.html
# Using local LLM (Ollama, LocalAI, etc.)
docloom generate \
--type architecture-vision \
--source ./docs \
--model llama2 \
--base-url http://localhost:11434/v1 \
--api-key "unused" \
--out output.html
# With configuration file
docloom generate \
--config ./docloom.yaml \
--type architecture-vision \
--source ./docs \
--out output.htmlDocLoom supports Research Agents - external programs that can analyze your codebase and generate specialized documentation. Agents can be written in any language and are discovered automatically from designated directories.
# List all available agents
docloom agents list
# Show detailed information about an agent
docloom agents describe <agent-name>$ docloom agents list
NAME DESCRIPTION
---- -----------
code-analyzer Analyzes code complexity and patterns
api-documenter Generates API documentation from source
security-scanner Identifies security vulnerabilities
$ docloom agents describe code-analyzer
Agent: code-analyzer
API Version: v1
Kind: ResearchAgent
Description: Analyzes code complexity and patterns
Runner:
Command: python3
Args:
- /agents/code_analyzer.py
Parameters:
- Name: language
Type: string
Description: Programming language to analyze
Required: true
- Name: max_depth
Type: integer
Description: Maximum analysis depth
Required: false
Default: 3Agents are defined using YAML files with a .agent.yaml extension. Place them in:
.docloom/agents/- Project-specific agents~/.docloom/agents/- User-wide agents
See docs/agents/schema.md for the complete agent definition schema.
DocLoom includes a powerful C# analysis agent powered by the Claude Code CLI (cc-cli). This agent performs deep analysis of C# repositories using the Claude LLM.
The Claude Code CLI must be installed separately:
# Build from source
cd tools/claude-code-cli
go build -o cc-cli
# Add to PATH or copy to a location in PATH
sudo cp cc-cli /usr/local/bin/
# Or install with go install (when released)
go install github.com/karolswdev/docloom/tools/claude-code-cli@latest# Use the csharp-cc-cli agent with generate command
docloom generate \
--type architecture-vision \
--source /path/to/csharp/project \
--agent csharp-cc-cli \
--out architecture.htmlSet your Claude API key:
export CLAUDE_API_KEY="your-api-key"The agent will analyze your C# codebase and generate comprehensive artifacts including:
- Project overview and architecture
- API documentation
- Technical debt analysis
- Security insights
- Recommendations for improvement
DocLoom supports flexible configuration through multiple sources (in precedence order):
- CLI flags - Direct command-line arguments
- Environment variables -
DOCLOOM_prefixed variables - Configuration file - YAML configuration
- Defaults - Built-in sensible defaults
Create a docloom.yaml:
# Model configuration
model: gpt-4
base_url: https://api.openai.com/v1
temperature: 0.7
max_retries: 3
# Template configuration
template_dir: ./custom-templates
# Output configuration
force: false
# Operational configuration
verbose: false
dry_run: falseUse with: docloom generate --config docloom.yaml ...
| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
OpenAI API key (required) | - |
DOCLOOM_MODEL |
AI model to use | gpt-4 |
DOCLOOM_BASE_URL |
API endpoint URL | https://api.openai.com/v1 |
DOCLOOM_TEMPERATURE |
Generation temperature (0.0-1.0) | 0.7 |
DOCLOOM_TEMPLATE_DIR |
Custom templates directory | - |
DOCLOOM_VERBOSE |
Enable verbose logging | false |
DOCLOOM_DRY_RUN |
Preview without API calls | false |
DocLoom works with any OpenAI-compatible API:
- OpenAI - GPT-4, GPT-3.5-Turbo, etc.
- Azure OpenAI - Your Azure deployments
- Anthropic Claude - Via proxy
- Google Gemini - Via proxy
- Local LLMs - Ollama, LocalAI, llama.cpp
- Custom Deployments - Any OpenAI-compatible endpoint
DocLoom ships with professional templates for common documentation needs:
Document high-level system architecture and strategic direction:
- Executive summary
- System context and boundaries
- Key architectural decisions
- Technology stack
- Integration points
Track and prioritize technical improvements:
- Debt inventory
- Impact assessment
- Remediation strategies
- Priority matrix
- Timeline estimates
Define standard patterns and practices:
- Component specifications
- Design patterns
- Best practices
- Implementation guidelines
- Code examples
graph TB
CLI[CLI Interface] --> Core[Core Engine]
Core --> TM[Template Manager]
Core --> IG[Ingestion Engine]
Core --> AI[AI Integration]
Core --> RN[Render Engine]
IG --> MD[Markdown]
IG --> TXT[Text Files]
IG --> PDF[PDFs]
AI --> OAI[OpenAI]
AI --> AZ[Azure]
AI --> LOC[Local LLMs]
RN --> HTML[HTML Output]
RN --> JSON[JSON Sidecar]
TM --> TPL[Template Library]
TPL --> AV[Architecture Vision]
TPL --> TD[Tech Debt]
TPL --> RA[Ref Architecture]
- CLI Interface - Cobra-based command structure with comprehensive flags
- Template Manager - Loads and validates document templates with field schemas
- Ingestion Engine - Processes multiple source formats into unified content
- AI Integration - Flexible provider system supporting any OpenAI-compatible API
- Render Engine - Generates styled HTML and JSON output with full traceability
- Go 1.22 or later
- Make (optional but recommended)
- golangci-lint (for linting)
# Clone the repository
git clone https://github.com/karolswdev/docloom.git
cd docloom
# Run tests
make test
# Run linting
make lint
# Build binary
make build
# Run all CI checks
make cidocloom/
βββ cmd/docloom/ # CLI entry point
βββ internal/ # Core implementation
β βββ ai/ # AI provider integration
β βββ config/ # Configuration management
β βββ ingest/ # Source file processing
β βββ render/ # Output generation
β βββ templates/ # Template management
βββ pkg/ # Public packages
βββ templates/ # Built-in templates
βββ docs/ # Documentation
β βββ SRS.md # Software Requirements Spec
βββ tests/ # Test fixtures and data
# Run all tests with race detection
make test
# Run with coverage
make coverage
# Run specific tests
go test -v ./internal/ai/...
# Run integration tests
make integration-testWe welcome contributions! DocLoom follows industry-standard practices to ensure code quality and maintainability.
- Read our Software Requirements Specification to understand the project scope
- Check the Issues for good first contributions
- Fork the repository and create a feature branch
- Make your changes following our standards
- Submit a PR with a clear description
-
Commit Messages - We use Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changestest:Test additions or changesrefactor:Code refactoringchore:Maintenance tasks
-
Code Quality - All code must pass:
make lint # golangci-lint checks make test # Unit tests with race detection make ci # All quality checks
-
Testing - Write tests for new functionality, especially on critical paths
- Fork and clone the repository
- Create a feature branch from
main - Make your changes with appropriate tests
- Run
make cito ensure quality - Push your branch and create a PR
- Address review feedback
Found a bug or have a feature request? Open an issue with:
- Clear description of the problem or request
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your environment details
- Software Requirements Specification - Detailed project requirements
- API Reference - Go package documentation
- Template Development Guide - Creating custom templates
- Architecture Decision Records - Key design decisions
We take security seriously. If you discover a vulnerability:
- Do not open a public issue
- Email security concerns to the maintainers
- Allow time for a fix before public disclosure
- API keys are never logged or included in output files
- Automatic redaction in debug output
- Support for environment variables and secure config files
DocLoom is open source software. See the LICENSE file for details.
DocLoom stands on the shoulders of giants:
- Cobra for CLI framework
- Zerolog for structured logging
- OpenAI Go for AI integration
- The Go community for excellent tools and libraries
Special thanks to all contributors who help make DocLoom better!
- β Core template engine
- β Multi-source ingestion
- β AI integration
- β Docker support
- β Comprehensive testing
- π Web UI for template editing
- π Template marketplace
- π Real-time collaboration
- π Version control integration
- π Custom field validators
- π API server mode
- π Plugin system
- π Multi-language support
- π Advanced analytics
- π Enterprise features
Ready to create beautiful documentation?
Get Started β’ Read the Docs β’ Join the Community
Made with β€οΈ by the DocLoom team