Skip to content

Rachel

Rachel is a local-first personal AI assistant designed to connect language models with software tools and real-world hardware.

It combines a conversational AI interface with a modular backend, local language models, MCP-based tool integration, and a MicroPython-powered hardware layer. The goal is to build an assistant that can do more than generate text: it can interact with services, retrieve information, and control connected devices.

Overview

Rachel runs locally using Ollama and brings together several components:

  • AI Backend: A Python and FastAPI service responsible for conversation management, the agent loop, API endpoints, and tool execution.
  • Frontend: A Next.js application providing the user interface for conversations, chat history, and tool interactions.
  • MCP Integration: Go-based MCP development provides a tool interface through the Model Context Protocol, allowing the assistant to interact with external capabilities.
  • Hardware Firmware: MicroPython firmware running on a Raspberry Pi Pico 2 W, enabling communication with sensors, LEDs, relays, and other connected components.
  • Local Language Models: Ollama runs the language model locally, handling reasoning, conversation, and tool selection.

Features

  • Local AI inference through Ollama.
  • Multi-turn conversations with persistent chat history.
  • MCP-based tool integration.
  • Interaction with connected hardware and home sensors.
  • Temperature and humidity readings from a Raspberry Pi Pico.
  • LED and relay control.
  • Hardware resource monitoring.
  • Weather information retrieval.
  • A web-based interface with Persian and multilingual conversation support.

Technology Stack

Component Technologies
Backend Python, FastAPI
Frontend Next.js, React, TypeScript
Database PostgreSQL
ORM & Migrations SQLAlchemy, Alembic
MCP Go, Model Context Protocol
Hardware Firmware MicroPython, Microdot
Hardware Raspberry Pi Pico 2 W
Local AI Ollama, Qwen3

Project Structure

Rachel is organized into separate components, each responsible for a specific part of the system:

  • Backend: API, agent logic, conversation storage, and tool execution.
  • Frontend: Web interface and user interaction.
  • MCP: Tool integration and communication through the Model Context Protocol.
  • MicroPython: Firmware and hardware communication.

This separation keeps the application modular and allows its software and hardware components to evolve independently.

Resources

Each major component includes its own setup instructions and technical details in the source repository.