Observed since 21 Oct, 10:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AI-powered code intelligence tool for analyzing and documenting codebases
Autodoc is an AI-powered code intelligence tool that analyzes Python and TypeScript codebases, enabling semantic search using OpenAI embeddings. It parses code using AST (Abstract Syntax Tree) analysis to extract functions, classes, and their relationships, then generates embeddings for intelligent code search.
# Install from PyPI
pip install ai-code-autodoc
# Or install for development (requires uv)
git clone https://github.com/Emberfield/autodoc.git
cd autodoc
make setup
source .venv/bin/activate
# Quick workflow
autodoc analyze ./src # Analyze your codebase
autodoc generate # Create AUTODOC.md documentation
autodoc vector # Generate embeddings for search
autodoc search "auth logic" # Search with natural language
# LLM Enrichment (NEW!)
autodoc init # Create .autodoc.yml config
autodoc enrich --limit 50 # Enrich code with AI descriptions
autodoc generate # Now includes enriched content!
# Additional commands
autodoc check # Check setup and configuration
autodoc graph --visualize # Build graph database with visualizations
autodoc serve # Start REST API server
Context packs group related code by feature for focused search and AI context:
# Auto-detect and suggest packs based on codebase structure
autodoc pack auto-generate --save
# List all defined packs
autodoc pack list
# Build pack with embeddings for semantic search
autodoc pack build auth --embeddings
# Build all packs with AI summaries (requires API key)
autodoc pack build --all --embeddings --summary
# Search within a specific pack
autodoc pack query auth "user login flow"
# See pack dependencies
autodoc pack deps auth --transitive
# Check what changed since last index
autodoc pack diff auth
Analyze how file changes affect your codebase:
# Analyze impact of changed files
autodoc impact api/auth.py api/users.py --json
# Check pack indexing status
autodoc pack status
Autodoc includes an MCP (Model Context Protocol) server for AI assistant integration:
# Start MCP server
autodoc mcp-server
Available MCP Tools:
Core Tools (always available):
capabilities - Check what tools are available based on your setuppack_list - List all context packspack_info - Get details about a packpack_query - Semantic search within a packpack_files - List files in a packpack_entities - List code entities in a packimpact_analysis - Analyze file change impactpack_status - Get indexing statuspack_deps - Get pack dependenciespack_diff - Check what changed since last indexanalyze - Analyze codebase and extract entitiessearch - Semantic search across codebasegenerate - Generate documentationGraph Tools (require Neo4j - see setup below):
graph_build - Build code relationship graphgraph_query - Query graph for insightsfeature_list - List auto-detected code featuresfeature_files - Get files in a feature clusterTip: Call the capabilities tool first to see which tools are available in your environment.
Autodoc includes a web-based dashboard for exploring your analyzed codebase:
# From the autodoc root directory
cd dashboard
npm install
npm run dev
Open http://localhost:3000 to view:
Prerequisites: The dashboard reads from autodoc cache files. Run autodoc analyze . --save first.
See dashboard/README.md for more details.
from autodoc import SimpleAutodoc
import asyncio
async def main():
# Initialize autodoc
autodoc = SimpleAutodoc()
# Analyze a directory
summary = await autodoc.analyze_directory("./src")
print(f"Found {summary['total_entities']} code entities")
# Search with natural language
results = await autodoc.search("validation logic", limit=5)
for result in results:
print(f"{result['entity']['name']} - {result['similarity']:.2f}")
asyncio.run(main())
Create a .autodoc.yml file in your project root (or run autodoc init):
# LLM provider settings
llm:
provider: anthropic # or openai, ollama
model: claude-sonnet-4-20250514
temperature: 0.3
# Embeddings - use chromadb for free local embeddings
embeddings:
provider: chromadb
chromadb_model: all-MiniLM-L6-v2
dimensions: 384
# Cost controls for LLM operations
cost_control:
summary_model: claude-3-haiku-20240307 # Cheaper model for summaries
warn_entity_threshold: 100 # Warn on large packs
cache_summaries: true # Cache to avoid regenerating
dry_run_by_default: false
# Context packs for feature-based code grouping
context_packs:
- name: auth
display_name: Authentication
description: User authentication and authorization
files:
- "src/auth/**/*.py"
- "api/routes/auth.py"
security_level: critical
tags: [security, core]
For LLM-powered features (enrichment, summaries):
# Anthropic (recommended for summaries)
export ANTHROPIC_API_KEY=sk-ant-...
# Or OpenAI
export OPENAI_API_KEY=sk-...
Note: Embeddings use local ChromaDB by default - no API key needed for semantic search!
First, install uv - the fast Python package manager:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or via Homebrew
brew install uv
# Clone repository
git clone https://github.com/Emberfield/autodoc.git
cd autodoc
# Setup environment with uv
make setup
# Activate virtual environment
source .venv/bin/activate
# Run tests
make test
# Format code
make format
# Build package
make build
make help # Show all available commands
make setup # Setup development environment with uv
make setup-graph # Setup with graph dependencies
make analyze # Analyze current directory
make search QUERY="your search" # Search code
make test # Run all tests
make test-core # Run core tests only
make test-graph # Run graph tests only
make lint # Check code quality
make format # Format code
make build # Build package
# Graph commands (require graph dependencies)
make build-graph # Build code relationship graph
make visualize-graph # Create graph visualizations
make query-graph # Query graph insights
# Quick workflows
make dev # Quick development setup
make dev-graph # Development setup with graph features
Autodoc is published to PyPI with automated releases via GitHub Actions:
# Build package locally
make build
# Create a GitHub release to trigger automatic PyPI publish
# Or manually trigger the workflow from GitHub Actions
The package is available at pypi.org/project/ai-code-autodoc.
# Generate markdown documentation
autodoc generate-summary --format markdown --output codebase-docs.md
# Generate JSON for programmatic use
autodoc generate-summary --format json --output codebase-data.json
With additional dependencies, you can build and query a code relationship graph:
# Setup with graph dependencies
make setup-graph
source .venv/bin/activate
# Build graph (requires Neo4j running)
autodoc build-graph --clear
# Create visualizations
autodoc visualize-graph --all
# Query insights
autodoc query-graph --all
# Or use make commands
make build-graph
make visualize-graph
make query-graph
The graph features require a running Neo4j instance with the Graph Data Science (GDS) plugin.
Quick Start with Docker Compose:
# Start Neo4j with GDS plugin
docker compose up -d
# Verify it's running
docker compose ps
# View logs
docker compose logs -f neo4j
After starting, Neo4j will be available at:
neo4j / autodoc123Manual Docker Setup:
docker run -d \
--name autodoc-neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/autodoc123 \
-e NEO4J_PLUGINS='["graph-data-science"]' \
-e NEO4J_dbms_security_procedures_unrestricted=gds.* \
neo4j:5-community
Configure environment:
export NEO4J_URI=bolt://localhost:7687
export NEO4J_USER=neo4j
export NEO4J_PASSWORD=autodoc123
The graph features require additional packages:
neo4j - Graph database drivermatplotlib - Static graph visualizationnetworkx - Graph analysisplotly - Interactive visualizationspyvis - Interactive network graphsInstall them with: make setup-graph or uv sync --extra graph
Search Results for 'authentication'
┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Type ┃ Name ┃ File ┃ Line ┃ Similarity ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ function │ authenticate │ auth/handler.py │ 45 │ 0.92 │
│ class │ AuthManager │ auth/manager.py │ 12 │ 0.87 │
│ function │ check_token │ auth/tokens.py │ 78 │ 0.83 │
└──────────┴────────────────┴─────────────────────┴───────────┴────────────┘
Analysis Summary:
files_analyzed: 42
total_entities: 237
functions: 189
classes: 48
has_embeddings: True
git checkout -b feature/amazing-feature)make test)make format)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.11.3 | 14 Jan 2026 | 28 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 10:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:0cdfc280ad544867bbd7ec8c5a4b2e748bf08343ae38ba09591b97d7d4c7bdb7