Overview
The Artifact Miner React client provides a modern web-based interface built with OpenTUI - a framework for building terminal-style UIs in React. Unlike the Textual TUI which runs in your terminal, this client runs in a web browser with a terminal-inspired aesthetic.Features
- Landing page with animated typewriter effect and call-to-action
- Consent screen for LLM processing preferences
- File upload with ZIP scanning and directory selection
- Project list showing discovered repositories
- Analysis progress with real-time updates
- Resume preview displaying extracted insights and summaries
Requirements
- Bun runtime (recommended for OpenTUI projects)
- Node.js 16+ (alternative to Bun)
- Artifact Miner API running on
http://127.0.0.1:8000
Installation
The React client is located in theopentui-react-exp/ directory:
Running the Client
- Production Mode
- Development Mode
- With Backend
Start the client:The terminal UI will launch directly in your terminal window.
Project Structure
Components Overview
Landing Page
Animated welcome screen with:- Typewriter effect cycling through taglines
- Pulsing gold border on call-to-action button
- Character ripple animation on “Get Started” text
- “We build your narrative”
- “Your repos, rewritten by us”
- “Proof of work, now polished by us”
- “Turning your TODOs to ta-das”
Consent Screen
LLM processing consent with two options:- Consent with LLM - Allow external AI processing
- Consent without LLM - Local analysis only
File Upload
ZIP file selection and scanning:- File input with drag-and-drop support
- Automatic ZIP content extraction
- Directory filtering (excludes
__MACOSX,._*)
Project List
Checkbox-based repository selection:- Scrollable list of discovered projects
- Search/filter functionality (Fuse.js)
- Selection count tracker
Analysis Progress
Real-time analysis feedback:- Progress bar (percentage complete)
- Current repository being processed
- List of completed repositories
Resume Preview
Formatted display of results:- Resume items grouped by project
- AI summaries (when available)
- Export to JSON/TXT buttons
API Client
The client uses a typed API wrapper for backend communication:State Management
Global state managed with React Context:Theming
OpenTUI components styled with terminal-inspired color palette:Development Scripts
Testing
The client includes unit tests using Bun’s built-in test runner:Mock Data
Development mode includes mock data for offline testing:Differences from Textual TUI
| Feature | Textual TUI | React Client |
|---|---|---|
| Runtime | Python terminal | Bun/Node.js terminal |
| Framework | Textual | OpenTUI React |
| Rendering | Native terminal UI | Terminal-style UI in terminal |
| Animation | Limited | Rich (typewriter, ripple, glow) |
| Mouse Support | Terminal-dependent | Built-in |
| Browser Support | No | Potential future web version |
| Maturity | Stable | Experimental |
Known Limitations
Future Enhancements
Planned features for future releases:- Web browser support - Run in actual browser instead of terminal
- Real-time collaboration - Multiple users analyzing same project
- Advanced visualizations - Charts and graphs for metrics
- Custom themes - User-selectable color schemes
- Plugin system - Extensible analysis modules
- Offline mode - Cached results and local-first architecture
Troubleshooting
Bun not found
Bun not found
Install Bun:Or use Node.js:
Cannot connect to API
Cannot connect to API
Make sure the backend is running:Verify it’s accessible:
Module not found errors
Module not found errors
Reinstall dependencies:
TypeScript errors
TypeScript errors
Check TypeScript version:Update if needed:
Contributing
The React client is open for experimentation:- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-ui) - Make your changes
- Test thoroughly (
bun test) - Lint and format (
bun run fix) - Submit a pull request
Design Philosophy
The React client embraces:- Terminal aesthetic - Retro computing vibes
- Smooth animations - Modern UX polish
- Minimal dependencies - Fast install and startup
- Type safety - Full TypeScript coverage
- Component reusability - Modular architecture
Next Steps
Textual TUI
Compare with the stable Python Textual interface
CLI Interface
Use the command-line interface for automation
API Reference
Explore backend API endpoints for integration
OpenTUI Docs
Learn more about the OpenTUI framework