Features
Devlog offers a comprehensive set of features designed for modern software development workflows while prioritizing privacy and security.
Core Features
Smart Commit Parsing
Conventional Commits Support
- Fully compliant with Conventional Commits specification
- Automatic detection of commit types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
- Breaking change detection via
!suffix orBREAKING CHANGE:footer - Scope extraction and categorization
Heuristic Fallback
- Intelligently parses non-standard commits
- Extracts meaningful information from freeform commit messages
- No strict format requirements - works with any Git repository
Unit-Based Processing
Devlog introduces a revolutionary approach by organizing commits into logical "units":
Unit Types:
-
[PR] Pull Request Commits
- Groups consecutive commits with same PR reference
- Consolidates squash commits
- Shows PR links and numbers
- Example: Multiple commits in PR#123 → Single unit with combined analysis
-
[Merge] Merge Commits
- Analyzes incoming branch using M^1..M^2 range
- Consolidates all commits from feature branch
- Rolls up statistics and summaries
- Treats merge as atomic unit of work
-
[Direct] Direct Commits
- Groups related direct commits to main branch
- Uses temporal proximity and file overlap heuristics
- Segments by author and timeframe
- Filters noise while preserving context
-
[Tag] Tag Milestones
- Detects both annotated and lightweight tags
- Distinguishes release tags (v1.2.3) from general tags
- Generates release summaries
- Interleaves chronologically with commits
Multiple Output Formats
Markdown (Default)
- Human-readable changelog format
- Grouped by commit type or chronological order
- Breaking changes prominently displayed
- Author attribution optional
JSON
- Structured data for programmatic access
- Complete commit metadata
- Integration-friendly format
- Schema-based validation
Flexible Filtering Options
By Version Range
# Between two tags
devlog --from v1.0.0 --to v2.0.0
# From tag to HEAD
devlog --from v1.0.0 --to HEAD
By Commit Range
# Last N commits
devlog --limit 50
# Specific commit range
devlog --from abc1234 --to def5678
By Date Range
# Coming soon: date-based filtering
Minor Commit Filtering
- Automatic detection of whitespace-only changes
- Filters documentation-only commits
- Identifies typo fixes and formatting changes
- Configurable thresholds
AI-Powered Features
Multiple LLM Providers
Local LLMs (Recommended)
-
Ollama
- Easy installation and setup
- Multiple model support (llama3.2, mistral, etc.)
- Automatic model download
- No API keys required
-
llama.cpp
- Maximum performance
- Custom model support
- GGUF format compatibility
- Complete offline operation
Cloud LLMs (Optional)
-
OpenAI (GPT-4)
- Highest quality summaries
- Fast processing
- Requires API key
- Cost per request
-
Anthropic (Claude)
- Excellent code understanding
- Long context support
- Requires API key
- Cost per request
Privacy-First Architecture
Three Privacy Levels:
-
Strict Mode (Default for cloud)
- Removes all PII (emails, URLs, paths)
- Sanitizes ticket IDs
- Redacts sensitive patterns
- Maximum privacy protection
-
Moderate Mode
- Keeps file paths intact
- Removes emails and URLs
- Balances utility and privacy
- Suitable for internal tools
-
Relaxed Mode (Local only)
- No sanitization
- Full context for AI
- Only available with local LLMs
- Best analysis quality
Privacy Guarantees:
- Local LLMs never send data over network
- Cloud providers require explicit opt-in
- Dry-run mode shows exactly what would be sent
- Cost estimation before any API calls
- Transparent data handling
- Zero telemetry or tracking
Diff Analysis Mode
What It Does:
- Analyzes actual code changes, not just commit messages
- Extracts file changes, insertions, deletions
- Identifies affected code areas
- Assesses change impact (Major, Moderate, Patch, Minor)
- Generates detailed summaries of modifications
How It Works:
- Extracts diff for each commit vs. parent
- Analyzes diff content with local LLM
- Categorizes changes by area and impact
- Consolidates unit-level summaries
- Filters noise and minor changes
Output Structure:
- [PR] Feature name (date)
PR: #123
• What changed: High-level description
• Summary:
- Detailed bullet point 1
- Detailed bullet point 2
- Detailed bullet point 3
• Impact: Moderate
• Files: 5 files, +234/-67 lines
Requirements:
- Only works with local LLMs (Ollama, llama.cpp)
- No network access required
- Analyzes full git history
- Works with any repository
Feature Grouping
Automatic Feature Detection:
- Groups related units by logical features
- Identifies common themes across commits
- Separates PRs from direct commits
- Generates feature-level summaries
Output Format:
======================================================================
Feature Change Log: v1.0.0 → v1.1.0
======================================================================
### User Authentication
**Summary:**
- Implemented JWT-based authentication
- Added login and logout endpoints
- Middleware for protected routes
**PRs:**
- [#123](url) Add user authentication system
**Commits:**
- [abc1234](url) Refactor authentication middleware
### Dashboard Feature
**Summary:**
- Created dashboard layout components
- Integrated analytics API
**PRs:**
- [#125](url), [#126](url) Feature/dashboard integration
======================================================================
Use Cases:
- Release notes generation
- Feature tracking
- High-level project overview
- Stakeholder communication
Developer Experience
Progress Indicators
8-Stage Processing Pipeline:
- Stage 0: Preflight - Privacy checks, LLM availability
- Stage 1: Collection - Gathering commits and tags
- Stage 2: Unit Formation - Classifying and grouping
- Stage 3: Diff Extraction - Extracting code changes
- Stage 4: Analysis - AI analyzing each unit
- Stage 5: Feature Grouping - Organizing by features
- Stage 6: Filtering - Applying noise filters
- Stage 7: Rendering - Generating output
Visual Feedback:
- Spinners for indeterminate operations
- Progress bars with counters for analysis
- Stage completion checkmarks
- Clear error messages with remediation steps
Conventional Commits Integration
Supported Types:
feat- New featuresfix- Bug fixesdocs- Documentation changesstyle- Code style changes (formatting, etc.)refactor- Code refactoringperf- Performance improvementstest- Test changesbuild- Build system changesci- CI/CD configuration changeschore- Maintenance tasksrevert- Reverted changes
Breaking Changes:
feat!: remove deprecated API endpoint
feat(api)!: change response format
fix: correct token validation
BREAKING CHANGE: API v1 endpoints removed
Grouping & Organization
By Commit Type:
devlog --group
Groups commits into sections: Features, Bug Fixes, Documentation, etc.
Chronological:
devlog
Lists commits in time order with unit badges.
By Feature:
devlog --diff-analysis --group-features --llm ollama
Groups related work into logical features.
Author Attribution
devlog --authors
Includes commit author information in output:
- feat(auth): add JWT support [abc1234] (John Doe)
Security Features
Secret Detection Prevention
- Never logs API keys or tokens
- Sanitizes sensitive environment variables
- Redacts credentials from output
- Secure token handling
Data Sanitization
Automatic Redaction:
- Email addresses →
[EMAIL] - URLs →
[URL] - File paths →
[PATH](strict mode) - Ticket IDs →
[TICKET](strict mode)
Pattern Detection:
- API keys and tokens
- Credit card numbers
- Social security numbers
- Private keys
Audit Trail
- Transparent operation logging
- No hidden network calls
- Dry-run mode for verification
- Cost estimation before spending
Integration Features
Git Hosting Support
GitHub Integration:
- Pull request link generation
- Issue reference resolution
- GitHub-flavored markdown
- Actions workflow compatible
GitLab Integration:
- Merge request links
- Issue tracking integration
- GitLab CI/CD compatible
- GitLab Pages deployment
CI/CD Compatibility
Automated Changelog Generation:
# In GitHub Actions or GitLab CI
- name: Generate changelog
run: |
devlog --from ${{ env.LAST_TAG }} --to HEAD \
--output CHANGELOG.md \
--no-consent-prompt
No Interactive Prompts:
devlog --no-consent-prompt
Skip user confirmation for CI/CD environments.
Exit Codes:
0- Success1- General error2- Configuration error3- Git repository error
Configuration
Environment Variables
# LLM API Keys
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
# Logging
export DEVLOG_LOG_LEVEL="info" # trace, debug, info, warn, error
export RUST_LOG="devlog=debug"
# Privacy enforcement
export DEVLOG_PRIVACY_MODE="strict"
Configuration File Support
Coming soon: .devlogrc or devlog.toml for project-specific settings.
Performance
Optimization Features
- Parallel commit processing
- Efficient git operations via libgit2
- Streaming diff analysis
- Memory-efficient large repository handling
Benchmarks
- 1000 commits: ~30 seconds (local LLM)
- 100 commits with diff analysis: ~2-3 minutes (Ollama)
- Feature grouping: +10-15 seconds overhead
Roadmap
Planned features (see GitLab Issues):
- Configuration file support (.devlogrc.toml)
- Date-based filtering
- Interactive mode for commit selection
- Plugin system for custom formatters
- Web UI for repository visualization
- Git hosting API integration (automatic PR/MR fetching)
- Multi-repository changelog aggregation
- Custom LLM provider support
- Template-based output generation