DoCode is a fork/evolution of Understand-Anything by Lum1104.
This project builds upon the excellent foundation laid by Lum1104's Understand-Anything. All core analysis concepts, graph generation techniques, and initial architecture credit goes to the original author. DoCode extends this work with enhanced dashboard features, improved documentation, and additional analysis capabilities.
Original Project: https://github.com/Lum1104/Understand-Anything
Original Author: Lum1104
- What is DoCode?
- Why DoCode? (Problem Statement)
- Key Features
- Screenshots
- Quick Start
- Detailed Installation Guide
- Documentation Pages Guide
- Architecture Overview
- Use Cases
- Frequently Asked Questions
- Troubleshooting
- Contributing
- License
- Support & Community
DoCode (formerly evolving from Understand-Anything) is a modern code intelligence platform that transforms how developers understand, navigate, and maintain complex codebases. It automatically scans repositories and generates interactive knowledge graphs that visualize:
- Structural relationships between files, functions, classes, and modules
- Dependency graphs showing import chains and coupling
- Domain-specific flows for business logic visualization
- Interactive dashboards for exploring code relationships
- Fast: Analyzes 500+ files in ~1 second
- Visual: Interactive graphs instead of static documentation
- Flexible: Works with GitHub repos, local folders, or ZIP archives
- Extensible: Plugin architecture for custom analyzers
Modern codebases are increasingly complex:
- Microservices with hundreds of repositories
- Monorepos with thousands of files
- Legacy code with poor documentation
- Rapid team changes leading to knowledge loss
Traditional tools fail because:
- Static documentation gets outdated quickly
- Code search lacks relationship context
- Dependency analysis is fragmented
- New team members struggle to onboard
DoCode solves this by:
- Automatically generating living documentation via code analysis
- Visualizing actual code relationships, not just file structures
- Providing interactive exploration instead of static docs
- Enabling quick impact analysis for changes
- Parses ASTs (Abstract Syntax Trees) to extract:
- Functions, classes, methods, variables
- Import/export relationships
- Call hierarchies
- Type annotations and interfaces
- Supports multiple languages: JavaScript, TypeScript, Python, Java, C#, Go, Rust
- Creates nodes for code entities (files, functions, classes)
- Creates edges for relationships (imports, calls, extends, implements)
- Generates both structural and domain-specific graphs
- Outputs standard formats: JSON, GraphML, Cytoscape.js
- Search: Full-text search across all code entities
- Filter: Filter by type, language, complexity
- Explore: Click nodes to see details and relationships
- Navigate: Jump to source code directly from graph
- Export: Save graphs as images or JSON
| Input Type | Example | Notes |
|---|---|---|
| GitHub Repository | https://github.com/4shil/Docode |
Public & private repos (with auth) |
| Local Folder | ~/projects/my-app |
Analyzes current state |
| ZIP Archive | project.zip |
Good for one-off analyses |
| Git URL | git@github.com:user/repo.git |
Clones and analyzes |
- Speed: ~1 second for 500 files (depending on hardware)
- Incremental: Only re-analyzes changed files
- Caching: Stores analysis results for quick reloads
- Parallel: Uses worker threads for concurrent analysis
The main dashboard view showing code knowledge graph visualization
Interactive graph showing relationships between code entities
Detailed view of selected code entity with relationships
# Clone the repository
git clone https://github.com/4shil/Docode.git
cd DoCode
# Install dependencies
pnpm install
# Build core package
cd docode/packages/core && pnpm build && cd ../../
# Run analysis on DoCode itself
pnpm run analyze -- --target . --output .understand-anything/
# Start the dashboard
cd docode/packages/dashboard && pnpm devThen open http://localhost:3000 to see your code graph!
- Node.js β₯ 18.x (LTS recommended)
- pnpm β₯ 8.x (Package manager)
- Git (for cloning repositories)
- Python 3 (optional, for some analyzers)
# Using npm
npm install -g pnpm
# Or using corepack (Node.js β₯ 16.9)
corepack enable
corepack prepare pnpm@latest --activategit clone https://github.com/4shil/Docode.git
cd DoCodepnpm install
# This installs all workspace packages (core, dashboard, etc.)cd docode/packages/core
pnpm build
cd ../../ # Return to rootpnpm run analyze -- --help
# Should show help text for the analyzerWhat's covered:
- Prerequisites and installation
- First analysis (GitHub repo, local folder, ZIP)
- Starting the dashboard
- Quick examples with expected output
- Troubleshooting common issues
When to use: New users should start here.
2. Usage Guide
What's covered:
- Advanced analysis options
- Configuration files
- CI/CD integration
- Performance tuning
- Custom analyzers
- Batch processing
When to use: After getting started, to learn advanced features.
3. Dashboard
What's covered:
- Dashboard features and UI components
- Keyboard shortcuts
- Search and filtering
- Graph interaction
- Settings and customization
- Export options
When to use: To master the interactive dashboard.
4. Architecture
What's covered:
- Project structure deep dive
- Data flow diagrams
- Core engine internals
- Plugin system
- API endpoints
- Design decisions
When to use: Contributors and developers extending DoCode.
What's covered:
- Core API methods
- Data formats (JSON schemas)
- TypeScript types
- HTTP endpoints (if using server mode)
- Event system
- Extension points
When to use: Integrating DoCode programmatically.
6. Contributing
What's covered:
- Development setup
- Coding standards
- Pull request process
- Testing guidelines
- Issue reporting
- Community guidelines
When to use: Want to contribute code or documentation.
DoCode uses a monorepo architecture with three main packages:
Docode/
βββ homepage/ # Astro-based documentation site (you are here)
β βββ src/pages/ # Documentation pages (MDX)
β βββ public/ # Static assets
β βββ dist/ # Build output (deployed to GitHub Pages)
β
βββ docode/ # Main workspace (pnpm)
β βββ packages/
β βββ core/ # Analysis engine (TypeScript)
β β βββ src/
β β β βββ analyzer/ # Language-specific analyzers
β β β βββ graph/ # Graph generation logic
β β β βββ output/ # Export formats
β β βββ dist/ # Compiled output
β β
β βββ dashboard/ # React-based visualization (Vite + React)
β βββ src/
β β βββ components/ # UI components
β β βββ graph/ # Cytoscape.js integration
β β βββ state/ # State management
β βββ dist/ # Production build
β
βββ docs/ # Documentation source (MDX)
βββ scripts/ # Build and analysis scripts
βββ .understand-anything/ # Generated knowledge graphs (legacy name)
- Input β GitHub URL / Local path / ZIP
- Analysis β Core engine parses code, extracts entities
- Graph Generation β Creates nodes and edges
- Output β JSON + Dashboard visualization
- Interaction β User explores via dashboard
- Quickly understand project structure
- Visualize dependencies and relationships
- Find key files and entry points
- Map undocumented codebases
- Identify dead code and unused dependencies
- Plan refactoring efforts
- See what breaks when changing a function
- Understand downstream dependencies
- Plan safe refactoring
- Visualize PR changes in context
- Understand relationship impact
- Generate review documentation
- Visualize current vs target architecture
- Identify architectural smells
- Plan microservices extraction
A: No, it complements IDEs. While IDEs provide local code intelligence, DoCode gives you a global view of relationships across the entire codebase or multiple repositories.
A: Sourcegraph is a search tool with some code intelligence. DoCode focuses specifically on visual graph exploration and relationship mapping, which is more intuitive for understanding complex dependencies.
A: Yes! For GitHub, provide a personal access token. For local folders, just provide the path.
A: Never. DoCode is read-only β it only analyzes, never writes to your source files.
A: Check the Contributing Guide for creating custom analyzers. DoCode's plugin architecture makes it straightforward.
A: Historical compatibility with the original Understand-Anything project. This will be renamed to .docode/ in a future release.
Solution:
- Check that the target path is correct
- Ensure the language is supported
- Try with
--verboseflag for detailed logs
Solution:
# Kill process on port 3000
npx kill-port 3000
# Or use a different port
pnpm dev -- --port 3001Solution:
# Clear pnpm cache
pnpm store prune
# Reinstall
rm -rf node_modules pnpm-lock.yaml
pnpm installSolution:
cd docode/packages/core
pnpm clean
pnpm install
pnpm buildSolution:
- Ensure analysis completed successfully
- Check that
.understand-anything/folder exists - Verify JSON files are valid (use
jqto check)
We welcome contributions! Here's how to get started:
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/Docode.git - Create branch:
git checkout -b feature/your-feature - Make changes and commit:
git commit -m "feat: add your feature" - Push to your fork:
git push origin feature/your-feature - Open PR against
4shil/Docode:main
# After cloning
pnpm install
# Run core tests
cd docode/packages/core && pnpm test
# Run dashboard dev server
cd ../dashboard && pnpm dev
# Run docs site locally
cd ../../../homepage && pnpm dev- TypeScript: Strict mode enabled
- Formatting: Prettier + ESLint
- Commits: Conventional Commits (
feat:,fix:,docs:, etc.) - Tests: Jest for core, Vitest for dashboard
See Contributing Guide for full details.
This project is licensed under the MIT License β see the LICENSE file for details.
Important: The original Understand-Anything project by Lum1104 is also MIT licensed. DoCode maintains this license compatibility.
- Understand-Anything by Lum1104
- Repository: https://github.com/Lum1104/Understand-Anything
- Core analysis concepts, graph generation techniques
- Maintainer: 4shil
- Enhancements: Improved dashboard, comprehensive documentation, GitHub Pages site
- Repository: https://github.com/4shil/Docode
- Astro - Documentation site
- React - Dashboard UI
- Cytoscape.js - Graph visualization
- pnpm - Package management
- TypeScript - Type-safe development
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: https://4shil.github.io/Docode/
Last Updated: May 2026
Version: 0.1.0 (evolving from Understand-Anything)