
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@dthreads/atlas
Advanced tools
Atlas is a local architecture intelligence engine for NestJS projects, developed by Digital Threads. It scans source code, builds a typed graph of the application, highlights architectural risks, and provides a browser viewer and MCP tools for exploring the result.

Atlas helps answer practical questions about an unfamiliar backend:
Everything runs locally. Atlas does not upload source code or collect telemetry. It
never stores values from real .env files or Kubernetes Secrets; safe non-secret
sample values from .env.example may be included as configuration documentation.
Once the package is published to npm, install it globally:
npm install --global @dthreads/atlas
You can also run Atlas without a global installation:
npx @dthreads/atlas --help
For local development from this repository:
git clone https://github.com/Digital-Threads/atlas.git
cd atlas
npm install
npm run build:cli
node dist/cli/index.js --help
Run Atlas from the root of a NestJS project:
atlas scan
atlas open
Or scan another directory:
atlas scan --path ../my-nest-app
atlas open --path ../my-nest-app
The scan creates a .atlas directory inside the analyzed project. atlas open
opens its static viewer in the default browser. If the browser restricts local
files, use the built-in local server:
atlas serve --path ../my-nest-app --port 4317 --open
Then open http://localhost:4317.
atlas scanScans a project and writes the graph, metadata, risks, report, and viewer.
atlas scan [--path <project>] [--output <directory>] [--debug]
--path defaults to the current directory. --output defaults to .atlas
relative to the project root. Use --debug to print non-fatal analyzer warnings.
When you choose a custom output directory, pass the same --output value to
open, serve, report, and mcp.
The scanner respects rules from the project's root .gitignore. It also skips
dependencies, generated output, caches, temporary directories, Git worktrees,
symbolic links, and its own output directory. Nested .gitignore files are not
currently evaluated separately.
atlas openOpens <project>/.atlas/viewer/index.html in the default browser.
atlas open [--path <project>] [--output <directory>]
atlas serveServes the generated viewer on localhost. No files are sent to an external server.
atlas serve [--path <project>] [--output <directory>] [--port 4317] [--open]
atlas reportRegenerates .atlas/report.md from the current graph and risk data.
atlas report [--path <project>] [--output <directory>]
atlas mcpStarts a Model Context Protocol server over standard input/output.
atlas mcp [--path <project>] [--output <directory>]
The NestJS adapter currently detects:
ClientKafka, @MessagePattern, and @EventPattern;@RabbitSubscribe and @RabbitRPC;Static analysis has limits. Dynamic modules, runtime-generated providers, reflection, and indirect calls may not always be resolved. Every inferred graph item includes its source and confidence so consumers can distinguish evidence from inference.
.atlas/
graph.json Typed nodes and relationships
metadata.json Scan time, file counts, stack evidence
risks.json Detected risks and recommendations
report.md Human-readable architecture summary
viewer/
index.html Offline architecture application
atlas-data.js Real scan data adapted to semantic scenes
support.js Local viewer runtime
react.production.min.js Local UI runtime
react-dom.production.min.js Local UI renderer
graph.json Raw typed architecture graph
The viewer works without a cloud backend. Deterministic scenes cover the system map, request and asynchronous flows, complete data catalog and focused table ERD, migrations, scheduled jobs, source files, risks, and Delivery & Runtime. Delivery switches independently between development, staging, and production, so unrelated environment topology is not mixed into one unreadable map.
The interactive viewer UX reference is stored in
docs/design/atlas-viewer-prototype.html.
It serves as the visual design specification. Generated viewers use the same
interface with real scan results from atlas-data.js; no demonstration project
entities are copied into a scan.
First scan the project, then configure an MCP-compatible client to launch Atlas. For a globally installed package:
{
"mcpServers": {
"atlas": {
"command": "atlas",
"args": ["mcp", "--path", "/absolute/path/to/project"]
}
}
}
Without a global installation:
{
"mcpServers": {
"atlas": {
"command": "npx",
"args": ["-y", "@dthreads/atlas", "mcp", "--path", "/absolute/path/to/project"]
}
}
}
The server exposes these tools:
atlas_find_nodeatlas_get_nodeatlas_get_dependenciesatlas_get_dependentsatlas_find_routesatlas_find_flowatlas_find_async_flowsatlas_find_async_flowatlas_find_tablesatlas_find_data_modelatlas_get_table_profileatlas_find_migrationsatlas_find_schedulesatlas_find_deliveryatlas_find_environmentsatlas_find_external_apisatlas_searchatlas_project_summaryThe MCP server only reads the generated .atlas/graph.json file. It does not need a
token or network connection.
Install dependencies and run the complete check:
npm install
npm run check
Useful commands:
npm run dev # public Next.js website
npm run dev:cli -- scan --path ./tests/fixtures/nest-app
npm run build:cli # CLI and library package
npm run build:website
npm test
npm run test:performance
npm run lint
npm run typecheck
The tests scan a representative NestJS fixture, validate route-to-database, publisher-to-consumer, migration, schedule, and delivery flows, exercise all 18 MCP tools, verify architecture and deployment risks, and confirm that real secret values never enter generated artifacts. The performance test generates 1,000 TypeScript files, 100 controllers, 300 services, and 1,000 routes.
The detailed MVP requirements and their automated evidence are listed in
docs/PRD-COMPLIANCE.md.
.env.example can be shown as documentation..env, source files, and graph data are never uploaded by Atlas.Review generated artifacts before publishing them because filenames, route names, API hosts, and source previews can still describe internal architecture.
Issues and pull requests are welcome. Keep changes focused, add tests for changed
analysis behavior, and run npm run check before opening a pull request.
MIT, maintained by Digital Threads.
FAQs
Architecture intelligence for NestJS codebases.
The npm package @dthreads/atlas receives a total of 11 weekly downloads. As such, @dthreads/atlas popularity was classified as not popular.
We found that @dthreads/atlas demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.