Project Info
This project did not submit a demo video on Devpost.
Inspiration
we've all been there--staring at a text from the girl in your math class, wondering "will this come across the right way??". what if there was a way to practice and simulate the nuance of personal relationships? just like dr strange saw 14 million possible outcomes, what if you could freely practice any social situation over and over again until it becomes a reality?
What it does
our one-click no-code button exports your entire iMessage chatlog into our fine-tuning pipeline, turning that LLM into someone that texts exactly like your best friend, boss, partner or romantic interest. rehearse infinite messages in a sandbox, add some context and what you hope to achieve with this individual, whether personal or professional. get your drafted messages scored in real-time, before you hit the 'send' button -- suggesting edits like “add an emoji here—they respond 73% better to the sobbing emoji in awkward situations” or “shorten this paragraph—they usually disengage after 2 sentences.” not sure how to respond to their latest text? get suggested messages powered by the same monte carlo algorithm that powered alphago.
Challenges we ran into
parsing imsg data is messy. also generating replies took a long time, but sql/wasm caching works wonders.
Ninja - AI Chat Practice Tool
Ninja is a one-click fine-tuning tool that helps you practice messaging with AI-powered chat simulations. Train the model on your iMessage history to create personalized chat experiences and receive feedback on your messaging style.
Features
- One-click iMessage chat export using MeGPT
- AI-powered chat playground with real-time feedback
- Contextual suggestions based on conversation history
- Performance ratings and messaging analysis
Local Development Setup
Prerequisites
- Python 3.8+ with pip
- Node.js 18+ with npm
- macOS (for iMessage integration)
iMessage Export Setup (macOS only)
-
Clone and install MeGPT:
git clone https://github.com/1rgs/MeGPT.git cd MeGPT pip install -r requirements.txt -
Export your messages:
python extract_messages.py -
The exported messages will be saved as messages.csv and ready for fine-tuning
Backend Setup
cd backend/ninja_backend
pip install -r requirements.txt
python -m uvicorn local_server:app --reload --port 3001
The backend will be available at http://localhost:3001
Frontend Setup
cd frontend
npm install
npm run dev
The frontend will be available at http://localhost:3000
Environment Variables
Backend (.env in backend/ninja_backend):
ANTHROPIC_API_KEY=your_api_key_here
MODEL_PATH=path/to/saved/model # Optional, for loading pre-trained models
Frontend (.env in frontend):
NEXT_PUBLIC_API_URL=http://localhost:3001
Development Notes
- The frontend is built with Next.js and uses Tailwind CSS for styling
- For hackathon demos, prepare the fine-tuned model in advance
- The chat playground provides real-time feedback and suggestions
API Documentation
Message Import
POST /api/v1/messages/import- Import messages from MeGPT exportGET /api/v1/messages/{contact}- Get imported messages for a contact
Chat Interface
POST /api/v1/chat/message- Send a message and get AI responsePOST /api/v1/chat/analyze- Get feedback on messaging style
Model Management
POST /api/v1/model/train- Fine-tune model on imported messagesGET /api/v1/model/status- Check training status
Analysis
View
Metric
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- Hugging FaceIn code
- Next.jsIn code
- OllamaIn code
- PythonIn code
- PyTorchIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
10 of 10 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
94 KB
Source files
33
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
lamboenthusiast/sim
60 files · 502 KB · @ bd9a5eb
Structure
Interface
20 files · 33%Screens, components and styles rendered to the user.
API & routing
2 files · 3%Request entry points: routes, handlers and controllers.
Application logic
6 files · 10%Domain rules, services and shared utilities.
Data & schema
1 file · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python47%
- TypeScript47%
- Markdown5%
- YAML0%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
MeGPT/requirements.txt
pypi · 37- accelerate
- aiohttp
- aiosignal
- async-timeout
- attrs
- bitsandbytes
- certifi
- charset-normalizer
- cmake
- datasets
- dill
- filelock
- frozenlist
- fsspec
- huggingface-hub
- idna
- Jinja2
- lit
- +19 more
frontend/package.json
npm · 17- @headlessui/react
- @heroicons/react
- clsx
- framer-motion
- next
- react
- react-dom
- tailwind-merge
- +9 more
backend/ninja_backend/requirements.txt
pypi · 16- accelerate
- aiohttp
- bitsandbytes
- datasets
- fastapi
- httpx
- numpy
- pandas
- peft
- python-dotenv
- python-multipart
- PyYAML
- sqlalchemy
- torch
- transformers
- uvicorn
backend/requirements.txt
pypi · 4- fastapi
- ollama
- python-multipart
- uvicorn
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.