CodeBundle bundles selected project files into one Markdown or text export for AI review, code sharing, automation, and CI/CD workflows.
It has two local execution paths:
- Desktop app: an Electron UI for choosing a project folder, scanning files, selecting files/folders, choosing an output file, and running the local exporter.
- Python CLI: a standalone automation tool that reads a JSON config and writes the final export.
CodeBundle is local-first. It does not upload files, does not call cloud services, and does not store secrets. The desktop app calls the Python CLI on the same machine.
Status: MVP development build with release packaging foundation. Development mode requires Node/npm, Python 3.10+, and access to exporter-python. Public desktop builds include the Electron runtime and a bundled exporter sidecar so installed users do not manually install Python, Node, npm, Python packages, or project dependencies.
Latest public release:
https://github.com/jkjitendra/codebundle/releases/latest
Run these commands from the repository root unless stated otherwise.
Install and run the desktop app:
cd apps/desktop
npm install
npm run devInstall and run the Python exporter:
pip install -e exporter-python
python -m codebundle_exporter --config shared/codebundle.config.example.json- Open the desktop app with
npm run dev. - Choose a project folder.
- Scan the folder.
- Select files and folders in the tree.
- Choose an output
.mdor.txtfile. - Click
Run Export. - Use
Reveal Outputafter export succeeds.
The desktop app requires Python 3.10+ for the current MVP runtime. You can set CODEBUNDLE_PYTHON_PATH to point at a specific Python executable.
The Python exporter accepts a shared JSON config:
python -m codebundle_exporter --config path/to/codebundle.config.jsonstdout contains exactly one JSON object so scripts and the desktop app can parse results safely. See docs/python-automation.md.
- Desktop App Guide
- Python Exporter Guide
- Security Notes
- Desktop Packaging Notes
- Desktop Security Dependency Upgrade
- Release Checklist
- Website And Netlify Integration
- Python Automation Guide
codebundle/
exporter-python/
codebundle_exporter/
tests/
apps/
desktop/
src/
tests/
shared/
docs/
- Renderer code does not access Node.js APIs directly.
- Filesystem scanning happens in the Electron main process.
- Scan responses contain metadata only, not file contents.
- Python reads file contents only during export.
- Default excludes skip
.env, keys, credentials,.git,node_modules, build outputs, lock files, and common binary formats. - Dangerous roots such as
/,/etc,/usr,/System,/Library, and Windows system roots are blocked. - Path traversal attempts are rejected.
See docs/security.md for details.
Python:
cd exporter-python
pytestDesktop:
cd apps/desktop
npm ci
npm test
npm run typecheck
npm run buildRelease packaging preflight:
cd apps/desktop
npm run sidecar:build
npm run sidecar:verify
npm run package:dirCreate a public release by pushing a v* tag, for example:
git tag v0.1.0
git push origin v0.1.0GitHub Actions builds macOS, Windows, and Linux artifacts, builds the platform Python sidecar on each runner, and attaches installers/packages to the GitHub Release.
- Production signing, notarization, and installer release flow are not implemented yet.
- Current CI artifacts are unsigned beta builds.
- Desktop dependency audit is clean after the Electron/electron-builder/electron-vite/Vite security upgrade. See
docs/desktop-security-upgrade.md. - Sidecars must be built per target OS before packaging.
- Development mode still needs Python 3.10+ and Node/npm.
.gitignoresupport is simple root.gitignorepattern support, not full Git-compatible matching.- Export progress is coarse.
- Failed export temp configs may be kept for debugging.
Install Python 3.10+ or set:
export CODEBUNDLE_PYTHON_PATH=/path/to/python3Run the desktop app from the repository development setup. Public packaged builds use the bundled sidecar under app resources and do not use local Python.
Check the selected files, exclude patterns, and export summary.
