Hercule Poirot AI Detective Chatbot

"It is the little grey cells, mon ami, that solve the great problems."

A themed AI chatbot that channels the personality of Agatha Christie's legendary detective. Powered by Xiaomi's MiMo language models, it responds in Poirot's distinctive voice — complete with his meticulous reasoning, Belgian mannerisms, and signature flair for deduction.

1
Stars
1
Watchers
0
Issues
0
Forks

✨ Features

🎭

In-character responses

Replies as Hercule Poirot with personality, wit, and his signature style

🔄

Multiple AI models

Switch between `mimo-v2.5-pro` (reasoning) and `mimo-v2.5` (vision-capable)

🖼️

Image support

Upload, paste, or drag-and-drop images for visual analysis (vision model)

🔍

Web search

Toggle Tavily-powered web search for up-to-date information

📝

Markdown rendering

Rich formatted responses with syntax-highlighted code blocks

💾

Conversation history

Persistent chat sessions saved in your browser's localStorage

🌙

Dark theme

Elegant dark UI with gold accents inspired by the Art Deco era

⌨️

Keyboard shortcuts

`Enter` to send, `Shift+Enter` for newline, `Ctrl+B` to toggle sidebar

🚀 Quick Start

Prerequisites

Setup

1

Clone the repository

git clone https://github.com/TechDaydreamer/hercule-poirot-chatbot.git
cd hercule-poirot-chatbot
2

Install dependencies

npm install
3

Set up your environment variables

cp .env.example .env
# Then open .env and fill in your API keys:
MIMO_API_KEY=your_actual_api_key_here
TAVILY_API_KEY=your_tavily_key_here   # optional
4

Start the server

node server.js
5

Open in your browser

Navigate to http://localhost:3456

Windows Quick Launch

.\poirot.ps1

This will start the server (if not already running) and open the chatbot in your browser automatically.

⚙️ Architecture

The chatbot uses a lightweight proxy architecture:

Browser (index.html)
Node.js Server (server.js)
MiMo API / Tavily API

The Node.js server acts as a proxy to keep API keys secure on the server side — they are never exposed to the browser.

API Endpoints

Endpoint Method Description
/api/chat POST Send chat messages to MiMo
/api/models GET List available AI models
/api/search POST Perform Tavily web searches

Project Structure

poirot-chatbot/
├── index.html          # Frontend — single-page chat UI (HTML/CSS/JS)
├── server.js           # Backend — Node.js proxy server for API calls
├── poirot.ps1          # PowerShell launch script (Windows)
├── package.json        # Node.js project config
├── .env.example        # Environment variable template
├── .env                # Your local API keys (git-ignored)
└── README.md           # This file

🎭 About the Character

Hercule Poirot is a fictional Belgian detective created by Agatha Christie. This chatbot is designed to embody his:

Meticulous, methodical thinking

Breaking problems into ordered steps

Belgian pride

Occasional French phrases and reminders of his heritage

Ego and flair

Confident but not cruel, with dramatic reveals

Little grey cells

Reasoning over brute force, always

"I do not need to go to the scene of the crime. I need only to think."
— Hercule Poirot