A retro-inspired terminal interface for AI conversations
Demo β’ Features β’ Installation β’ Usage β’ Tech Stack
ChatForge is a sleek, terminal-inspired AI chat interface that brings the nostalgia of classic computing to modern AI conversations. Built with a focus on aesthetics and user experience, it features a beautiful retro green terminal theme with scan lines, neon glow effects, and smooth animations.
- Retro CRT monitor effects with scan lines
- Neon green text with customizable glow
- Smooth typing animations
- Classic terminal command interface
- Integration with OpenRouter API
- Context-aware responses with chat history
- Real-time streaming responses
- Markdown rendering with syntax highlighting
- Encrypted API key storage in MongoDB
- User-specific sessions with UUID
- Secure key validation system
- No client-side key exposure
- Clean, modular codebase
- React 19 with hooks
- Express.js backend
- MongoDB Atlas integration
- Responsive design for all devices
- Multi-step loader with progress indicators
- Copy-to-clipboard functionality
- Command palette (coming soon)
- Smooth scrolling and animations
- Error handling with helpful messages
root@chatforge-terminal:~# ./start_chatforge.sh
[β] Verifying ChatForge environment
[β] Loading AI modules...
[β] System ready for authentication
- React 19 - UI framework
- Vite - Build tool
- Tailwind CSS 4 - Styling
- Motion - Animations
- React Markdown - Markdown rendering
- Shiki - Syntax highlighting
- GSAP - Advanced animations
- Node.js - Runtime environment
- Express - Web framework
- MongoDB Atlas - Database
- OpenRouter API - AI model access
react-syntax-highlighter- Code blocksrehype-katex- Math renderingremark-gfm- GitHub Flavored Markdownlucide-react- Icons
- Node.js 18+ installed
- MongoDB Atlas account
- OpenRouter API account
git clone https://github.com/yourusername/chatforge.git
cd chatforgecd backend
npm install
# Create .env file
touch .envAdd to .env:
USER_NAME_MONGO=your_mongodb_username
DB_PASSWORD=your_mongodb_password
CLUSTER=your_cluster_url
APP_NAME=ChatForgecd ../frontend
npm installBackend:
cd backend
npm run serverFrontend:
cd frontend
npm run chatforge- Visit the application
- You'll see the guide page requesting an OpenRouter API key
- Create your free API key at OpenRouter
β Please create your key at https://openrouter.ai
β Copy it here to enable full access
[paste your API key and press Enter]
Once authenticated, you can:
- Ask questions naturally
- View formatted responses with syntax highlighting
- Copy code snippets with one click
- Review conversation history
> Who is the author of this website?
Abderrahmane Aarab
> How can I generate a short summary of my chat history?
Simply type your question and the AI will summarize the previous messages.
chatforge/
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ features/
β β β β βββ Terminal.jsx
β β β βββ ui/
β β β βββ button.jsx
β β β βββ multi-step-loader.jsx
β β β βββ shadcn-io/
β β β βββ ai/
β β βββ context/
β β β βββ chatsContext.jsx
β β βββ pages/
β β β βββ guidePage.jsx
β β βββ services/
β β β βββ api.jsx
β β βββ App.jsx
β β βββ index.css
β βββ package.json
β
βββ backend/
β βββ server.js
β βββ db.js
β βββ package.json
β βββ vercel.json
β
βββ README.md
USER_NAME_MONGO=your_mongodb_username
DB_PASSWORD=your_mongodb_password
CLUSTER=your_cluster_name
APP_NAME=ChatForgeSend a message to the AI
{
"question": "Your question here",
"history": "Previous conversation context",
"userId": "user-uuid"
}Validate an API key
{
"APIkey": "your-openrouter-key",
"userId": "user-uuid"
}Check if user has a stored key
{
"userId": "user-uuid"
}Edit frontend/src/index.css:
body {
background: #0a0a0a;
color: #39ff14; /* Change this for different neon colors */
}Edit backend/server.js:
model: "openai/gpt-oss-20b:free", // Change to your preferred modelContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Abderrahmane Aarab
- GitHub: @yourusername
- Email: your.email@example.com
- OpenRouter for AI API access
- shadcn/ui for beautiful UI components
- Vercel for AI components inspiration
- The open-source community
- Add command palette with shortcuts
- Implement chat history export
- Add multiple AI model selection
- Create user preferences panel
- Add voice input support
- Implement collaborative chats
- Add plugin system
- Maximum token limit may be reached with very long conversations
- Some markdown tables may not render perfectly on mobile
If you have any questions or need help, please:
- Open an issue
- Start a discussion
Made with π and retro vibes
β Star this repo if you find it helpful!