An Electron desktop tool that uses OpenAI GPT models to extract code from chat conversations and generate project file structures. Evolved over six versions from a minimal code extractor to a local-first extraction engine with metalanguage support.
- Paste chat conversations or project documentation as input.
- OpenAI GPT analyzes text and extracts/generates code.
- Extracted files organized into proper directory structure.
- Files written to disk automatically.
- v3+ adds UI features: progress bar, file preview, dark theme.
- v4 adds multi-stage pipeline: plan → generate → audit → auto-fix.
- v5 adds custom output folder selection and installer builds.
- v6 adds local-first extraction, metalanguage, content classifier, and security features.
| Version | Package Name | Model | Summary | Major Features | Major Issues |
|---|---|---|---|---|---|
| Wersja 1 (v1.0.0) | chat-extractor |
gpt-4.1 | Minimal prototype. Single-pipeline extraction. | Textarea input, LLM extraction, file writing | No progress UI, silent errors, model may not resolve |
| Wersja 2 | chat-extractor |
gpt-4.1 | Chunked IPC. Same core, adds transport robustness. | Chunked IPC (5 files/batch), explicit .env resolution | Dead code (projectBuilder), fire-and-forget chunks |
| Wersja 3 (v3.0.0) | chat-extractor-v3 |
gpt-4.1-mini | Modular architecture + UI. | Dark theme, progress bar, preview modal, organized dirs, token estimation | Duplicate file overwrite, modal missing filename |
| Wersja 4 (v4.0.0) | ai-project-generator |
gpt-4.1-mini | Multi-engine project generator. | Planner/generator/auditor/fixer pipeline, retry logic, JSON repair, atomic writes, structured logging, pause/resume, packaging | Unused refiner engine, naive JSON extraction, no rate limiting |
| Wersja 5 (v1.0.0) | chat-extractor |
gpt-4.1 | Custom output folder + installer. | Native folder picker, electron-builder NSIS installer, custom output path | API-dependent, no local extraction, no progress UI |
| Wersja 6 (v1.0.0) | chat-extractor |
gpt-4.1 | Local-first extraction engine. Complete rewrite. | Local multi-strategy parser (461 lines), metalanguage (create: syntax), content classifier, path traversal protection, atomic writes, extraction reports, Jest test suite |
Heuristic parser edge cases, no dark mode, no live preview |
- Node.js 18+
- npm
- Valid OpenAI API key (optional for v6 local mode)
# Wersja 1
cd "Wersja 1/production-ready" && npm install && npm start
# Wersja 2
cd "Wersja 2/production-ready" && npm install && npm start
# Wersja 3
cd "Wersja 3/production-ready" && npm install && npm start
# Wersja 4
cd "Wersja 4/production-ready/app" && npm install && npm start
# Wersja 5
cd "Wersja 5/production-ready" && npm install && npm start
# Wersja 6 (no API key needed for local mode)
cd "Wersja 6/production-ready" && npm install && npm startVersions 1-5 require OPENAI_API_KEY — copy .env.example to .env and add your key. Version 6 works without an API key in local mode. See per-version docs for details.
├── README.md This file
├── CHANGELOG.md Version history
├── CONTRIBUTING.md How to add versions and write docs
├── SECURITY.md Security guidance
├── LICENSE License placeholder
├── .gitignore
├── docs/
│ ├── ARCHITECTURE.md Cross-version architecture narrative
│ ├── VERSIONS.md Deep per-version summaries
│ ├── TESTING.md Smoke tests + future test strategy
│ └── KNOWN_ISSUES.md Issues per version with severity
├── Wersja 1/production-ready/ v1.0.0 — minimal prototype
│ ├── README.md, .gitignore, .env.example, LICENSE
│ ├── main.js, preload.js, renderer.js, index.html
│ ├── modules/ (extractor, parser, validator, fileWriter)
│ └── docs/ (RUN.md, FEATURES.md, LIMITATIONS.md)
├── Wersja 2/production-ready/ v2 — chunked IPC
│ ├── README.md, .gitignore, .env.example, LICENSE
│ ├── main.js, preload.js, renderer.js, index.html
│ ├── modules/ (+ projectBuilder.js)
│ └── docs/
├── Wersja 3/production-ready/ v3.0.0 — modular + UI
│ ├── README.md, .gitignore, .env.example, LICENSE
│ ├── main/, parser/, worker/, renderer/, utils/
│ └── docs/
├── Wersja 4/production-ready/ v4.0.0 — multi-engine generator
│ ├── README.md, .gitignore, .env.example, LICENSE
│ ├── app/backend/ (orchestrator, engines, stable-openai, etc.)
│ ├── app/frontend/ (UI, styles, audit viewer)
│ └── docs/
├── Wersja 5/production-ready/ v5 — custom output folder + installer
│ ├── README.md, .gitignore, .env.example, LICENSE
│ ├── main.js, preload.js, renderer.js, index.html
│ ├── modules/ (extractor, parser, validator, fileWriter)
│ └── docs/ (RUN.md, FEATURES.md, LIMITATIONS.md)
└── Wersja 6/production-ready/ v6 — local-first extraction engine
├── README.md, .gitignore, .env.example, LICENSE
├── main.js, preload.js, renderer.js, index.html, jest.config.js
├── modules/ (parser, extractor, classifier, metalanguage, validator, fileWriter, reporter)
└── docs/ (RUN.md, FEATURES.md, LIMITATIONS.md, METALANGUAGE.md, ROADMAP_v3.1.md)
Each version lives in Wersja N/production-ready/ — a self-contained, GitHub-publishable directory with its own package.json, dependencies, source code, documentation, and .gitignore. Any production-ready/ folder can be copied into a new repo and pushed to GitHub as-is.
See CONTRIBUTING.md for conventions.
| Document | Description |
|---|---|
| docs/ARCHITECTURE.md | How the tool evolved across versions |
| docs/VERSIONS.md | Deep summary of each version |
| docs/TESTING.md | Smoke tests and testing strategy |
| docs/KNOWN_ISSUES.md | Bugs and limitations per version |
| SECURITY.md | Security guidance |
| CONTRIBUTING.md | How to contribute |
| CHANGELOG.md | Version changelog |