Skip to content

Repository files navigation

Chat Extractor

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.

Key Capabilities

  • 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.

Versions Overview

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

Quickstart

General Prerequisites

  • Node.js 18+
  • npm
  • Valid OpenAI API key (optional for v6 local mode)

Per-Version

# 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 start

Versions 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.

Repository Structure

├── 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)

How Versioning Works

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.

Documentation

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

About

Chat Extractor — historical versions with full audit, documentation, and production-ready snapshots

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages