A cyberpunk-styled web application that validates statements and questions using multiple AI models. The Truth Terminal queries GPT-3.5-turbo, Claude-3-haiku, Gemini-pro, and Grok to provide consensus-based responses.
- Multi-AI Consensus: Queries 4 different AI models simultaneously
- Real-time Validation: Get instant "yes", "no", or "unknown" responses
- Cyberpunk UI: Matrix-style animations with neon teal aesthetics
- Response Details: View full AI responses in the side panel
- Alpha Leaks: Curated crypto/blockchain news feed
- Mobile Responsive: Optimized for all screen sizes
- In-Memory Ledger: Records all validation attempts with timestamps
- Rust 1.70+ (install from rustup.rs)
- OpenRouter API key (get from openrouter.ai)
- X.AI API key (optional, for Grok - get from x.ai)
-
Clone the repository
git clone https://github.com/jbrace02/TruthTerminal.MVP.git cd TruthTerminal.MVP -
Set up environment variables
cp .env.example .env # Edit .env and add your API keys -
Build and run
cargo build --release cargo run
-
Open in browser
http://localhost:3030
Create a .env file in the project root:
OPENROUTER_API_KEY=your_openrouter_api_key_here
X_API_KEY=your_x_api_key_here
PORT=3030The application uses these models via OpenRouter and X.AI:
openai/gpt-3.5-turboanthropic/claude-3-haikugoogle/gemini-prox/grok(via X.AI direct API)
TruthTerminal.MVP/
├── src/
│ └── main.rs # Rust backend (Warp web server)
├── index.html # Frontend UI with Matrix animations
├── Cargo.toml # Rust dependencies
├── .env # Environment variables (gitignored)
├── .env.example # Example environment configuration
└── .gitignore # Git ignore rules
Backend:
- Rust with Tokio async runtime
- Warp web framework
- Reqwest for HTTP requests
- Serde for JSON serialization
Frontend:
- Vanilla HTML5/CSS3/JavaScript
- IBM Plex Mono font
- Canvas API for Matrix animation
- API keys are stored in
.env(which is gitignored) - Use
.env.exampleas a template - Rotate keys regularly
- If a key is exposed, revoke it immediately from the provider's dashboard
- Revoke any exposed keys immediately
- Keep
.envin.gitignore - Use environment-specific keys (dev/prod)
- Monitor API usage for anomalies
- Set up rate limiting on your API keys
- Add environment variables in the platform dashboard
- Set
PORTenvironment variable (platforms usually provide this) - Deploy from GitHub
# Future implementationValidates a statement using multiple AI models.
Request:
{
"statement": "The sky is blue"
}Response:
{
"record": {
"id": "uuid",
"transaction": {
"id": "uuid",
"content": "The sky is blue"
},
"consensus": true,
"details": "...",
"timestamp": "2025-01-19T12:00:00Z"
},
"ai_responses": [
{
"agent_name": "openai/gpt-3.5-turbo",
"is_valid": true,
"raw_response": "Yes, the sky appears blue..."
}
]
}"OPENROUTER_API_KEY not set"
- Ensure
.envfile exists with valid API key - Check that
dotenvis loading the file
"Connection timeout"
- Check your internet connection
- Verify API keys are valid and have credits
- Some providers may have rate limits
"Server returned non-JSON response"
- The backend API might be unavailable
- Try the demo mode in the frontend
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenRouter for multi-model API access
- Anthropic Claude, OpenAI, Google, and X.AI for their AI models
- Matrix movie for the aesthetic inspiration
Jeremy - jeremy@shoprefit.com
Project Link: https://github.com/jbrace02/TruthTerminal.MVP