Skip to content
simenzzzPublic

About

Multi-language dependency exploration and audit tool. Scans a monorepo, builds a unified cross-language dependency graph, and serves layered interactive views.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Deckgraph

Multi-language dependency exploration and audit tool for large codebases.

Deckgraph scans a monorepo, auto-detects modules across ecosystems (JS/TS, Python, Go, Rust, Java), builds a unified dependency graph with cross-language edges, and presents layered, filterable views through an interactive web interface.

Quick Start

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Scan a project
npx deckgraph --project /path/to/monorepo

# Custom port
npx deckgraph --project /path/to/monorepo --port 4000

Open your browser to http://127.0.0.1:3333 to explore the dependency graph.

CLI Reference

deckgraph [options]

Options:
  --project <path>     Path to the project root (required)
  --port <number>      WebSocket server port (default: 3333)
  --no-open            Skip opening browser on start
  --no-watch           Disable file watching
  --version            Print version
  -h, --help           Show help

Examples

# Basic scan
npx deckgraph --project ~/my-monorepo

# Don't open browser (useful for CI/scripts)
npx deckgraph --project ~/my-monorepo --no-open

# Custom port with file watching disabled
npx deckgraph --project ~/my-monorepo --port 8080 --no-watch

Configuration

Create a .deckgraph.yaml file in your project root:

# Paths to ignore during scanning
ignore-paths:
  - "node_modules"
  - ".git"
  - "dist"
  - "build"

# Override concern tags for specific packages
concern-overrides:
  "express":
    - "web-framework"
    - "http"

Polyrepo / Workspace Mode

For multi-root workspaces, add a roots field:

roots:
  - services/api
  - services/web
  - shared/libs

hooks:
  on-scan-complete:
    - "echo 'Scan done'"
  on-outdated:
    - "slack-notify.sh"

VS Code Extension

Deckgraph includes a VS Code extension that provides:

  • Module tree sidebar — Browse modules grouped by ecosystem
  • Inline decorations — See dependency versions directly in manifest files
  • CodeLens — View resolved versions on import lines
  • Dashboard panel — Full web UI embedded in VS Code

Commands

Command Description
Deckgraph: Start Start the backend process
Deckgraph: Scan Initiate a project scan
Deckgraph: Show Dashboard Open the web dashboard
Deckgraph: Open Module Navigate to a specific module
Deckgraph: Refresh Tree Refresh the module tree sidebar

Supported Ecosystems

Ecosystem Manifest Files Adapter
JS/TS package.json @babel/parser + @babel/traverse
Python requirements.txt, Pipfile, pyproject.toml web-tree-sitter (WASM)
Go go.mod web-tree-sitter (WASM)
Rust Cargo.toml web-tree-sitter (WASM)
Java pom.xml XML parser

Development

# Install dependencies
pnpm install

# Run all packages in dev mode
pnpm dev

# Build all packages
pnpm build

# Run tests
pnpm test

# Run E2E tests
pnpm test:e2e

Hosted Demo Mode

Deckgraph can run as a read-only hosted demo that imports curated public GitHub repositories.

pnpm build
DECKGRAPH_DEMO_REPOS='[
  {
    "id": "deckgraph-fixture",
    "label": "Deckgraph Polyglot Fixture",
    "url": "https://github.com/simenzzz/Deckgraph.git",
    "description": "A compact repository with npm, PyPI, Go, Cargo, and Maven modules."
  }
]' node packages/backend/dist/index.js --demo --host 0.0.0.0 --port 3333 --no-open --no-watch

In demo mode the UI shows repository choices instead of the local scan button. Package install, update, remove, and batch actions are disabled so public visitors can explore scan results without mutating cloned repositories.

Deploy Demo Mode on Render

This repository includes a Render Blueprint at render.yaml. It builds the Docker image, serves the built React UI from the backend process, and starts Deckgraph in hosted demo mode.

  1. Confirm the app builds locally:

    pnpm build
  2. Push the current branch to GitHub:

    git push origin main
  3. In Render, create a new Blueprint and connect the GitHub repository:

    https://github.com/simenzzz/Deckgraph
    
  4. Keep the Blueprint path as render.yaml, review the generated deckgraph-demo web service, and deploy it.

  5. After the first deploy finishes, open:

    https://deckgraph-demo.onrender.com
    
  6. Verify the hosted flow:

    • The Deckgraph UI loads at /.
    • The demo repository picker is visible.
    • Importing Deckgraph Polyglot Fixture completes a scan.
    • Install, update, remove, and batch actions stay hidden or disabled.

Render free instances can spin down after inactivity. The first request after a quiet period may take longer while the service wakes and reuses or recreates the /tmp/deckgraph-demo-cache clone cache.

Project Structure

packages/
├── backend/     # Node.js server (adapters, graph, query engine, WS server, actions)
├── ui/          # Web frontend (React 19 + Vite + shadcn/ui)
├── shared/      # Shared types & Zod schemas
└── vscode/      # VS Code extension

See docs/ARCHITECTURE.md for detailed component design.

License

Private — All rights reserved.

About

Multi-language dependency exploration and audit tool. Scans a monorepo, builds a unified cross-language dependency graph, and serves layered interactive views.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages