Skip to content

About

Local codebase explorer for tracing dependencies, change impact and source evidence across JavaScript, TypeScript and Python.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Threadmark

Threadmark maps relationships inside a codebase: what depends on a symbol, which code is reachable from a change, and which tests have detected relationships. The Windows app and CLI share a Rust analysis engine. Everything runs locally; Threadmark does not upload source code or execute repository scripts.

Version 0.1.1 supports JS/TS and Python indexing, search, directed neighborhoods, evidence, path tracing, reverse impact, local Git baseline comparison, test discovery, Express routes, JSX references and optional watching. See STATUS.md for validation and precise limitations. Static reachability is not a runtime prediction or a guarantee of test coverage.

Threadmark relationship map

Screenshots cover the map, source evidence, changes, impact, tests and diagnostics. See interface for keyboard controls and release notes for Windows build details.

Install on Windows

Download the Windows 0.1.1 prerelease. Choose Threadmark_0.1.1_x64-setup.exe for the desktop app, or Threadmark-0.1.1-cli-x64.zip for the portable CLI. The installer runs for the current user. WebView2 must already be installed; the installer never downloads a runtime. The build is unsigned. The bundled CLI is threadmark.exe in the installation folder; add that folder to PATH yourself if desired. There is also a portable CLI archive produced by scripts/package-release.ps1. Release assets include source and SHA256 checksums. This is an unsigned early release candidate; see known limits before relying on its results. You can also build from source using the steps below.

First repository

Open Threadmark, choose a local repository and wait for indexing. Search a file or symbol, focus it, and inspect dependency/dependent edges. Select any relationship for its source span and evidence. Show impact follows reverse paths. Changes compares refreshed source with a local Git ref. Tests shows Detected related tests. Configure an installed editor executable in Settings to open relevant source.

threadmark index C:\Projects\my-app
threadmark search createForecast
threadmark deps createForecast
threadmark dependents createForecast
threadmark impact createForecast --json
threadmark impact --against main --json
threadmark changes --against HEAD
threadmark tests createForecast
threadmark path ForecastController createForecast
threadmark cycles
threadmark diagnostics
threadmark watch C:\Projects\my-app
threadmark export > graph.json

Selectors accept an ID, a path, an unambiguous name, or path#qualified.name. Ambiguous names report candidate selectors. A bounded map deliberately shows one neighborhood; expand, pan, zoom or refocus to explore. JSON export omits source snippets by default; CLI export --include-evidence explicitly includes them.

CLI and storage

Options: --json, --quiet, --no-color, --data-dir PATH, --repository PATH. JSON envelopes have schema_version 1; watch emits newline-delimited JSON. JSON and quiet conflict. Exit codes: 0 success, 1 analysis/storage/runtime failure, 2 argument error. Human output is plain text, with terminal control characters removed. Errors/logs go to stderr. RUST_LOG=info enables local diagnostic logging.

The default Windows store is %LOCALAPPDATA%\Threadmark\Threadmark\data\threadmark.db; status reports its actual path. It contains settings, graph metadata, evidence snippets and cached syntax results. It is not encrypted. .env values are never read or stored. settings --theme system|light|dark persists appearance. Editor arguments support {path}, {line} and {column} without a shell:

threadmark settings --editor C:\Tools\Code.exe --editor-arg=--goto --editor-arg="{path}:{line}:{column}"

Development and checks

Validated on Windows 11 x64. Install the pinned Rust 1.98.1 toolchain, Node 24.15 or compatible Node, C++ Build Tools, Windows SDK and WebView2. Dependency installation and installer tool downloads need internet; installed Threadmark works offline.

cd apps/desktop
npm ci
npm run tauri dev
npm run lint
npm run typecheck
npm test
npm run build
cd ../..
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked
cargo build --release -p threadmark-cli --locked
cd apps/desktop
npm run tauri build

Build the frontend before direct Cargo workspace checks because Tauri embeds dist. The installer includes the separately built CLI; build it before packaging. cargo install --path crates/threadmark-cli --locked also installs the CLI. Run scripts/audit-licenses.ps1 and scripts/package-release.ps1 from PowerShell for license inventory and portable/source archives. Source remains GPL-3.0-or-later. scripts/generate-notices.ps1 collects dependency license texts before packaging. Use scripts/build-candidate.ps1 from a clean committed checkout, then scripts/package-release.ps1 -OutputDirectory artifacts/my-candidate with a new empty output directory. Source archives contain the selected commit only; the manifest records that commit and the binary build hashes. See the release procedure before packaging or signing.

Architecture

Rust owns discovery, Tree-sitter parsing, static resolution and bounded graph queries. SQLite publishes snapshots and parse caches in one transaction. Tauri and the CLI call the same engine; React presents neighborhoods and source evidence. Refreshes reuse unchanged parses and rebuild relationship resolution.

Scope and evidence

Runtime reflection, computed imports, arbitrary method dispatch, package-based tsconfig inheritance and dynamic framework behavior can be unresolved. Diagnostics expose blind spots; partial indexes and bounded results are marked. Syntax-based routes show declared paths, not proven mounted URLs. Renames appear as added/removed IDs. No repository scripts, tests, installers, modules, hooks or plugins execute during indexing. Following external symlinks or junctions is not supported.

Read architecture, indexing, language support, Python, frameworks, impact, Git comparison, tests, watching, security and performance. See LICENSE and dependency licenses.

About

Local codebase explorer for tracing dependencies, change impact and source evidence across JavaScript, TypeScript and Python.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages