Jarvis

November 4th, 2025 | 3 mins read

Explanation

Just A Rather Very Intelligent System

A conversational application to interact with multiple specialized AI agents, each with unique capabilities and distinct personalities.

🎭 AI Agents

Jarvis πŸ€–

Web development expert and UI/UX advisor. Capable of consulting web pages to provide accurate analyses and recommendations.

Ed 🎬

The best of Ed Harris and Ed Sheeran combined! Recommends trending movies, series, and music through Spotify and Trakt.Tv integrations.

Moka 🐱

A Chat assistant with its own character... Who does whatever it wants!

🎯 Goals

This project was designed to:

  • Demonstrate how to implement an AI agent with AI SDK (by Vercel);
  • Test the limits of agents and illustrate the value of "tools", these extensions that multiply the capabilities of LLMs;

πŸ“Έ Preview

Tools in Action

πŸš€ Installation

Clone the Project

git clone https://github.com/dmnchzl/jarvis.git
cd jarvis

Install Dependencies

pnpm install

Start the Application

pnpm run dev

Other Commands...

# Run tests
pnpm run test

# Build for production
pnpm run build

# Preview production build
pnpm run preview

βš™οΈ Configuration

1. Gemini API

Create a .env file at the project root and add your API key:

AI_API_KEY=<google_generative_ai_api_key>

NB: To get your API key, visit Google AI Studio

2. Data Persistence (Optional)

By default, the application uses in-memory storage. Here's how to enable PostgreSQL and Redis:

Install Docker

Make sure you have Docker and Docker Compose installed on your machine.

Configure Docker Compose

Modify the docker-compose.yml file according to your needs.

Complete Environment Variables

POSTGRES_URL=postgresql://<user>:<password>@localhost:5432/<db>
REDIS_URL=redis://localhost:6379

Start Services

docker compose up -d

Other Commands...

# Check services
docker compose ps

# Stop services
docker compose down

3. Spotify and Trakt.Tv APIs (Optional)

Ed 🎬 requires additional configuration to access movie, series, and music catalogs.

Spotify Configuration

  1. Create an application on Spotify for Developers
  2. Get your "Client ID" and "Client Secret"
  3. Add them to .env:
SPOTIFY_CLIENT_ID=<client_id>
SPOTIFY_CLIENT_SECRET=<client_secret>

Trakt.Tv Configuration

  1. Create an application on Trakt.Tv API
  2. Get your "Client ID"
  3. Add it to .env:
TRAKT_API_KEY=<client_id>

πŸ“¦ Technologies

  • AI SDK - The AI Toolkit for TypeScript
  • Drizzle - ORM for you to settle ship ship ship
  • HTMX - High Power Tools for HTML
  • Nitro - Next Generation Server Toolkit
  • Tailwind CSS - Rapidly build modern websites without ever leaving your HTML

πŸ“„ License

           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                   Version 2, December 2004

Copyright (C) 2025 Damien Chazoule <dmnchzl@pm.me>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

 0. You just DO WHAT THE FUCK YOU WANT TO.