// windows desktop app  ·  flutter · dart

ContextForge.

Drop a folder. Configure what to exclude. Hit one button.
Get a clean, structured codebase dump — file tree included —
ready to paste into Claude, GPT, or anything else.

ContextForge — main screen with folder loaded

Pasting a codebase into Claude should take one click. It doesn't. Until now.

Every time you want to give Claude your codebase, you have to either paste files one by one, write a bash script, or use some half-working VSCode extension that dumps everything including node_modules, build artifacts, and binary files into a blob that eats your context window.

You waste tokens on things the LLM can't use. You hit context limits on small projects. You end up guessing which files matter. There's no token estimate, no file tree, no control.

The tooling that should have existed just doesn't.

ContextForge is a proper Windows desktop app. Drop a folder in, and it scans instantly using Dart isolates — the UI never freezes. It automatically skips node_modules, build, .git, binaries, and anything in your .gitignore.

You see a live token estimate as you select files, with a color-coded budget indicator. Pick your output format — Plain Text, XML, or Markdown. Copy to clipboard or stream to disk. Done.

Native Windows 11 Mica/Acrylic glass UI. No installer, no bloat. Extract and run.

3
Output Formats
4
Project Type Presets
4
Theme Flavors
0
Installer Required

Four steps from folder to LLM context.

01
Drop your project folder
Drag and drop any project folder onto the app. ContextForge scans it immediately using a background Dart isolate — no UI freeze, even on large codebases.
02
Apply a preset or tune exclusions
One click applies a project type preset — Standard, MuleSoft, Python, or React. Fine-tune by excluding folders, file patterns, or individual files. Settings are saved as .exclusion_settings.json in your project root.
03
Watch the token estimate update live
A real-time token counter shows how many tokens your current selection will consume. The indicator shifts green → orange → red as you approach context limits.
04
Copy or save your context dump
Pick Plain Text, XML, or Markdown. Copy to clipboard for small outputs. For large codebases, stream to disk chunk-by-chunk — no RAM spikes regardless of project size.
ContextForge about page

Every feature exists because the alternative was painful.

Performance
Non-Blocking Scans via Dart Isolates
File scanning runs in a separate Dart isolate using compute(). The UI stays fully responsive while scanning, even on repos with thousands of files. Disk writes use a streaming chunk-by-chunk approach — massive outputs don't blow up RAM. Designed to handle real production codebases, not toy examples.
Exclusions
GitIgnore-Aware · Config That Travels With the Repo
Parses .gitignore and respects it during scans automatically. Your exclusion settings are stored in .exclusion_settings.json at the project root — not locked to the machine or app install. Commit it and every team member gets the same setup.
Token Budget
Real-Time Token Estimation — Color Coded
As you select or deselect files, the token count updates instantly. The indicator shifts from green to orange to red as you approach typical context window limits. Know before you copy.
Output
Plain Text · XML (CDATA) · Markdown Code Blocks
Three output formats depending on what your LLM handles best. XML wraps each file in CDATA blocks. Markdown uses fenced code blocks with language hints. All three include the full file tree header.
Presets
Project Type Profiles in One Click
Standard, MuleSoft, Python, React. Each preset applies the right exclusions for that ecosystem automatically — the right artifacts skipped, the right files included.
Search
File Search and Filter
Search bar to quickly find files in large projects. Filter the file tree to navigate to exactly what you need without scrolling through thousands of entries.
UI
Windows 11 Mica / Acrylic Glass — Four Themes
Built with fluent_ui and flutter_acrylic. Native Windows 11 Mica and Acrylic glass effects. Themes: Standard Glass, Pitch Black, Ocean Depth, Cyber Forest.
Architecture
Clean Separation — AppState · SettingsService · FileService
AppState (ChangeNotifier) manages UI state. SettingsService handles persistence. FileService runs all heavy I/O in isolates. Pages are thin UI shells — no logic leaks.
ContextForge — main screen with folder loaded
Utilities panel
Options and footer
Exclusion settings
Settings panel
About page

Three formats. Every file. One click.

Plain Text
== File Tree ==

my-project/
├── src/
│   ├── main.dart
│   └── app_state.dart
└── pubspec.yaml

== File: src/main.dart ==

void main() {
  runApp(const App());
}

== File: pubspec.yaml ==

name: my_project
version: 1.0.0
XML (CDATA)
<codebase>
  <file_tree>
    <![CDATA[
my-project/
├── src/main.dart
└── pubspec.yaml
    ]]>
  </file_tree>

  <file path="src/main.dart">
    <![CDATA[
void main() {
  runApp(const App());
}
    ]]>
  </file>
</codebase>
Markdown
## File Tree

```
my-project/
├── src/main.dart
└── pubspec.yaml
```

## src/main.dart

```dart
void main() {
  runApp(const App());
}
```

## pubspec.yaml

```yaml
name: my_project
```

No installer. Extract and run.

01
Download the latest release
Go to the GitHub Releases page and download the latest zip. No package manager, no admin rights, no Microsoft Store.
02
Extract the zip
Extract to any folder. The app is self-contained — all Flutter runtime files are included.
03
Run ContextForge.exe
Double-click ContextForge.exe. That's it. No install step, no wizard, no reboot.
bash
flutter pub get
flutter run -d windows --release
Requires Flutter SDK with Windows desktop enabled.
Framework
Flutter (Windows x64)
Native desktop app via Flutter. fluent_ui for Fluent Design System components.
Windowing
Mica + Acrylic Glass
bitsdojo_window and flutter_acrylic for native Windows 11 chrome.
State
provider
ChangeNotifier-based state management. Clean, minimal, no overkill.
Concurrency
Dart Isolates
compute() for all file I/O. True parallel execution — not just async.
Persistence
shared_preferences + JSON
Global settings via shared_preferences. Per-project settings via .exclusion_settings.json.
Security
AES-256
encrypt + crypto for Phase 4 identity features.
Flutter Dart fluent_ui flutter_acrylic bitsdojo_window Windows Mica / Acrylic Dart Isolates provider shared_preferences desktop_drop AES-256 Google Fonts