Vahag Byurat  ·  All Projects

Dragonote

Scan any codebase and export structured, token-aware context files ready to drop into an LLM conversation.

Rust CLI + Tauri desktop app: fast, deterministic, cross-platform.

Dragonote mascot

The Twin Dragons: One Core, Two Souls

Whether you live in the terminal or prefer a visual interface, Dragonote has you covered. The CLI (dragonote) is a standalone binary you can drop into any CI/CD pipeline or fire from your shell. The Desktop GUI wraps the exact same Rust scanning engine in a Tauri-powered native window with file trees, checkboxes, and a directory picker. Both share identical scanning, export, and truncation logic. Same output, every time.

CLI CLI Dragon
Desktop GUI GUI Dragon
dragonote <path>
--extra-ignore "*.log,temp/"   # skip matching patterns
--force-include "config.toml"   # override ignores
--include-resources   # include assets/static dirs
--test-mode separate|inline|exclude
--max-code-tokens 500000   # custom limits
--budget 128000   # exact token budget
--split   # auto-split large exports
--zip   # archive output

The Dragon's Vault of Code Context

Hoarding Knowledge: Smart Context Scanning

Point Dragonote at any project directory and it automatically understands what matters. Your .gitignore rules are respected out of the box, no configuration needed. Binary files, node_modules, build artifacts, and common junk directories are detected and skipped before a single token is counted.

Test directories (tests/, __tests__/, spec/) are automatically detected and exported separately so your LLM gets clean source context without test noise mixed in. Resource directories like assets/ and static/ are flagged and toggleable.

.dragignore is a persistent, project-level ignore file that sits alongside your .gitignore and gives you fine-grained control over exactly what the dragon hoards.


5 Critical Export Artifacts

Every scan produces a complete set of structured Markdown artifacts, ready to paste directly into any LLM conversation window.

🌳
File Tree
Full directory structure with sizes
📄
Source Code
Partitioned, token-aware code context
🧪
Test Files
Separately exported test context
📊
Raw CSVs
Detected, copied & consolidated
📝
Starter Prompt
Analysis prompt & usage readme

Truncation Mode Comparison

Precise Token Truncation

Every LLM has a context window. Dragonote makes sure your export fits inside it without wasting a single token. Set custom token limits, switch to character-based measurement, or use exact token budget mode powered by tiktoken (cl100k_base) to slice your codebase to a precise count.

Need to split a massive monorepo across multiple conversations? Auto-split partitions your export into correctly-sized chunks with zero manual math, including tests.

Capabilities

What the scanner, the exporter and the desktop shell can each do.

Scanning

  • Smart defaults: scan any project directory
  • Automatic .gitignore & binary detection
  • Multi-root project scanning
  • Parallel scanning (rayon)
  • Configurable test directories & wildcards
  • .dragignore: persistent project-level ignore rules
  • Extra ignore patterns (glob)
  • Force-include overrides
  • Resource directory toggle

Output

  • File tree + code context output
  • Test export modes (separate / inline / exclude)
  • CSV detection, copying & consolidation
  • Auto-split & consolidated output
  • ZIP archive export
  • Analysis prompt & usage readme

Truncation

  • Custom token & character limits
  • Exact token budget mode (tiktoken cl100k_base)

Desktop GUI

  • Native directory picker
  • Multi-root add/remove chips
  • File-level checkbox control
  • Resource directory picker
CLI Dragon

Built for the Terminal

One statically linked binary with nothing to install alongside it. Drop dragonote into any CI/CD pipeline, cron job, or shell alias. Scan a project in one command and pipe structured context straight into your LLM workflow.

Build targets v0.1.0 alpha

What the release workflow produces. The desktop bundle carries the CLI inside it; the standalone CLI is the same binary without the window, for headless and CI use.

🪟

Windows

NSIS installer .exe MSI package .msi Standalone CLI .exe
🍎

macOS

Disk image .dmg Standalone CLI x86_64 Standalone CLI aarch64
🐧

Linux

Debian package .deb Portable bundle .AppImage Standalone CLI x86_64

Alpha: nothing has been tagged for public release yet, so these are build targets rather than download links. The repository is private for now.

Tech Specs

What powers Dragonote under the hood.

Core Engine

  • Language: Rust (no GC, no interpreter)
  • CLI binary: single native executable, nothing to install alongside it
  • Scanning: walkdir + the ignore crate for .gitignore semantics
  • Pattern matching: globset
  • Token counting: tiktoken-rs (cl100k_base)
  • Parallel mode: rayon
  • Archive export: zip crate

Desktop GUI

  • Framework: Tauri 2.0
  • Frontend: vanilla HTML / CSS / JS, no Node.js
  • Renderer: OS-native WebView
  • IPC: typed Rust commands, JSON serialization
  • Dialogs: native OS file pickers

Resource Footprint

  • Idle RAM: ~30–50 MB
  • Installer size: ~4–8 MB
  • Startup: under 1 second
  • Background processes: none
  • Runtime deps: OS WebView only

Cross-Platform

  • Windows: 10+ (NSIS, MSI, standalone CLI)
  • macOS: 10.15+ (DMG, standalone CLI)
  • Linux: .deb, .AppImage, standalone CLI
  • Architecture: x86_64 on all three; Apple Silicon (aarch64) on macOS
  • CI-tested: 132 unit & integration tests in CI
Why Tauri? GUI technology considerations

Why not Electron?

Electron ships an entire Chromium browser and a Node.js runtime inside every app. That means a simple file-scanning utility would carry ~150–300 MB of overhead. Tauri uses the OS WebView instead: ~4–8 MB installer, ~30–50 MB idle RAM, zero Node.js processes.

No Node.js, not even at build time

The frontend is static HTML, CSS, and vanilla JavaScript. No npm install, no node_modules, no webpack. The build pipeline is pure cargo.

Where pure-Rust GUIs (egui) shine instead

Pure-Rust frameworks are the better choice for real-time data visualization and GPU-rendered canvases. Dragonote’s form-driven UI is exactly the kind of interface HTML/CSS was built for.

Bottom line: Tauri gives Dragonote a polished, accessible, CSS-styled desktop experience with bundled installers for all three platforms, at a fraction of Electron’s resource cost and without requiring Node.js at build or runtime.

Questions about the internals, or want an alpha build? Use the contact section of this site.