π Interactive JSONL editor for Claude Code conversation files with real-time file system synchronization.
Efficient Prompt Engineering Through Conversation Editing
Editing Claude Code logs (JSONL files) makes prompt engineering significantly more efficient through a powerful technique: output modification. This approach enables infinite iteration and refinement of AI interactions without starting from scratch.
Traditional prompt engineering requires:
- Write prompt β Get response β Analyze β Rewrite entire prompt β Repeat
Our approach enables:
- Write prompt β Get response β Edit the response directly β Continue conversation β Infinite refinement
- Context Preservation: By editing assistant responses in the conversation log, you maintain the full context while perfecting the output
- Iterative Refinement: Transform mediocre responses into perfect ones without losing conversation flow
- Prompt Engineering Acceleration: Test different response styles and approaches by editing outputs, then use successful patterns in future prompts
- Training Data Creation: Build high-quality conversation datasets by refining real interactions
- Debugging Conversations: Fix errors or improve responses retroactively to understand what works
- Template Creation: Edit responses to create reusable conversation templates
- Response Quality Control: Perfect Claude's outputs for documentation or examples
- Conversation Branching: Edit responses to explore different conversation paths
- Prompt Pattern Discovery: Identify what response styles work best for specific use cases
- Knowledge Base Building: Curate high-quality Q&A pairs from real interactions
By making conversation editing as simple as chat editing, this tool transforms how you work with AI conversations - from linear interactions to iterative masterpieces.
- π Interactive Chat Interface - Edit conversations in a familiar chat-style UI
- πΎ Real-time File Sync - Direct file system editing with automatic backups
- π§ Multi-file Support - Handle single files or entire directories
- βοΈ Rich Editing - Edit, copy, delete messages with inline editing
- π Network Access - Expose to network for remote editing
- π¨ Beautiful CLI - Colorful, informative command-line interface
- π Safe Operations - Automatic backup creation before saves
curl -fsSL https://raw.githubusercontent.com/anthropics/claude-code-jsonl-editor/main/install.sh | bash
After installation, reload your shell or add ~/.local/bin
to your PATH:
export PATH="$HOME/.local/bin:$PATH"
# Clone the repository
git clone https://github.com/anthropics/claude-code-jsonl-editor.git
cd claude-code-jsonl-editor
# Install dependencies
npm install
# Start the application
npm start
# Start with default samples directory
jsonl-editor
# Start with specific file
jsonl-editor -p ./conversation.jsonl
# Start with directory
jsonl-editor -p ./conversations
# Expose to network
jsonl-editor --expose
# Using the same install command will upgrade existing installation
curl -fsSL https://raw.githubusercontent.com/anthropics/claude-code-jsonl-editor/main/install.sh | bash
# Download and run uninstall script
curl -fsSL https://raw.githubusercontent.com/anthropics/claude-code-jsonl-editor/main/uninstall.sh | bash
# Or if you have the repository
bash uninstall.sh
jsonl-editor [options]
Options:
-p, --jsonl-path <path> Path to JSONL file or directory
-P, --port <port> Server port (default: 3001)
--client-port <port> Client port (default: 5173)
--host <host> Host to bind to (default: localhost)
--expose Expose to network (same as --host 0.0.0.0)
--no-backup Disable automatic backup creation
--server-only Start only the server
--client-only Start only the client
-v, --verbose Enable verbose logging
-q, --quiet Suppress non-error output
-h, --help Display help information
# Start with default samples
jsonl-editor
# Edit specific file
jsonl-editor -p ./conversation.jsonl
# Edit directory of files
jsonl-editor -p ./jsonl-files
# Network access
jsonl-editor -p ./data --expose
jsonl-editor -p ./data --host 192.168.1.100
# Custom ports
jsonl-editor -p ./data --port 4000 --client-port 8080
# Server only mode
jsonl-editor -p ./data --server-only
# Verbose logging
jsonl-editor -p ./data -v
claude-code-jsonl-editor/
βββ src/ # Frontend source
β βββ components/ # React/Preact components
β βββ utils/ # Utilities and parsers
β βββ types.ts # TypeScript definitions
βββ samples/ # Default sample files
βββ public/ # Static assets
βββ server.js # Express API server
βββ start.js # CLI entry point
βββ package.json # Project configuration
# Start development with file watching
npm run dev
# Build for production
npm run build
# Run server only
npm run server
# Run client only
npm run client
GET /api/config
- Get server configurationGET /api/files
- List available filesGET /api/files/:filename
- Read file contentPOST /api/files/:filename
- Save file content
The editor works with Claude Code JSONL files containing conversation entries:
{"type":"summary","summary":"General Project Development","leafUuid":"..."}
{"type":"user","message":{"role":"user","content":"Hello, claude-code!"},"uuid":"...","timestamp":"..."}
{"type":"assistant","message":{"role":"assistant","content":"Hello! How can I help?"},"uuid":"...","timestamp":"..."}
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- π Documentation: See inline help with
jsonl-editor --help
- π Issues: Report bugs on GitHub Issues
- π¬ Discussions: GitHub Discussions for questions
Built with β€οΈ for the Claude Code community