Skip to main content

Complete Installation Guide

This guide covers the complete installation process for Tabby AI Keyboard, including all prerequisites, optional features, and advanced configuration.
Looking for a faster setup? Check out the Quick Start guide for essential steps only.

System Requirements

Operating System

Windows 10 or Windows 11

Architecture

x64 (64-bit) processor

RAM

Minimum 8GB (16GB recommended)

Disk Space

At least 5GB free space

Prerequisites

Required Software

1

Node.js 18+

Download and install from nodejs.orgVerify installation:
2

Python 3.12+

Download and install from python.org
Make sure to check “Add Python to PATH” during installation.
Verify installation:
3

pnpm Package Manager

Install globally via npm:
Verify installation:
4

uv Python Package Manager

Install from astral.sh/uvOr via pip:
Verify installation:
5

Docker Desktop

Download and install from docker.com
Docker Desktop is required for running the local Supabase instance. Make sure it’s running before starting Tabby.
After installation, start Docker Desktop and verify:

API Keys

You’ll need at least one AI provider. OpenAI is recommended for the best experience.

Required

Optional AI Providers

Additional Services

Installation Steps

1. Clone Repository

2. Install Dependencies

Install dependencies for each component:
1

Frontend (Electron + Next.js)

This installs:
  • Electron 38
  • Next.js 15
  • React 19
  • Vercel AI SDK
  • UI components (Radix UI, Tailwind CSS)
2

Next.js Backend

This installs:
  • AI SDK integrations
  • Supabase client
  • API route handlers
3

Memory Backend (Python)

This installs:
  • FastAPI
  • Mem0
  • Supabase vector store
  • Neo4j connector (optional)

3. Database Setup

Tabby uses a local Supabase instance running in Docker, not the cloud service. This gives you full control and privacy.
1

Start Docker Desktop

Launch Docker Desktop and wait for it to fully initialize. You should see the Docker icon in your system tray.
2

Initialize Supabase

From the project root directory:
This command only needs to be run once. It creates the Supabase configuration directory.
3

Start Local Supabase

The first run will download approximately 13 Docker images. This can take 5-10 minutes depending on your internet connection. Subsequent starts take only ~10 seconds.
When complete, you’ll see output similar to:
Save these credentials - you’ll need them for environment configuration.
4

Verify Database Schema

The database schema is automatically applied from supabase/migrations/.Verify by visiting Supabase Studio:
Navigate to Table Editor to see the tables.
5

Create Storage Buckets

Create the required storage buckets for context captures and project assets.

Supabase Management Commands

4. Neo4j Setup (Optional)

Neo4j provides knowledge graph visualization for your memories. This is optional but recommended for advanced memory features.
1

Create Neo4j Instance

  1. Go to Neo4j AuraDB
  2. Sign up for a free account
  3. Create a new free instance
2

Save Credentials

When creating the instance, Neo4j will provide a credentials file. Download and save it securely.You’ll need:
  • URI (e.g., neo4j+s://xxxxx.databases.neo4j.io)
  • Username (usually neo4j)
  • Password (generated password)
  • Instance ID
  • Instance Name
3

Wait for Instance

Wait for your instance to be fully provisioned (usually takes 1-2 minutes).

5. Environment Configuration

Create and configure environment files for each component.
1

Create Environment Files

2

Configure Frontend

Edit frontend/.env.local:
3

Configure Next.js Backend

Edit nextjs-backend/.env.local:
4

Configure Memory Backend

Edit backend/.env:

Running Tabby

Make sure Docker Desktop is running before starting the services.

Development Mode

Start all services in separate terminal windows:
1

Terminal 1: Start Supabase

Wait for Supabase to fully start before proceeding.
2

Terminal 2: Start Memory Backend

The memory API will start on http://localhost:8000
3

Terminal 3: Start Next.js Backend

The API backend will start on http://localhost:3001
4

Terminal 4: Start Windows MCP (Optional)

This provides desktop automation features via MCP. Optional but recommended.
5

Terminal 5: Start Electron App

The Electron app will launch with the Next.js frontend on http://localhost:3000

Verify Installation

Check that all services are running:

Building for Production

Local Build

Create a production executable:
The .exe installer will be created in frontend/dist/.

GitHub Releases

For automated releases via GitHub Actions:
1

Configure GitHub Secrets

Add these secrets to your repository settings:
  • GH_TOKEN - GitHub Personal Access Token with repo scope
  • All NEXT_PUBLIC_* variables from .env.local
  • All SUPABASE_* variables
2

Trigger Release

This will:
  1. Read the version from package.json
  2. Create a Git tag (e.g., v0.1.1)
  3. Push the tag to GitHub
  4. Trigger the GitHub Action
  5. Build the Windows executable
  6. Create a draft GitHub Release

Post-Installation

1

Access System Tray

After starting the Electron app, look for the Tabby icon in your system tray.Right-click the icon to access:
  • Show Actions Menu
  • Brain Panel
  • Settings
  • Quit
2

Configure Settings

Open Settings from the system tray to:
  • Select your preferred AI model
  • Configure output mode (Paste/Typewriter)
  • Customize keyboard shortcuts
  • Set up custom actions
3

Learn Shortcuts

Familiarize yourself with the keyboard shortcuts to maximize productivity.

Troubleshooting

Problem: Supabase fails to startSolutions:
  • Ensure Docker Desktop is running
  • Check available disk space (need at least 5GB)
  • Verify Docker is not blocked by antivirus/firewall
  • Try restarting Docker Desktop
  • Run docker system prune to clean up old images
Problem: Services fail because ports are in useCheck ports:
Solutions:
  • Stop services using those ports
  • Or modify the ports in configuration files
Problem: Memory backend fails to startSolutions:
  • Verify Python 3.12+ is installed: python --version
  • Reinstall uv: pip install --upgrade uv
  • Delete .venv folder in backend/ and run uv sync again
  • Check that Supabase connection string is correct
Problem: Frontend or backend fails to startSolutions:
  • Verify Node.js 18+: node --version
  • Clear pnpm cache: pnpm store prune
  • Delete node_modules and pnpm-lock.yaml, then run pnpm install
  • Check all environment variables are set
Problem: Storage buckets not createdSolutions:
  • Create buckets manually via Supabase Studio at http://localhost:54323
  • Ensure service_role key is correct in PowerShell command
  • Check bucket names are exactly: context-captures and project-assets
  • Verify buckets are set to “Public”
Problem: Memory service can’t connect to Neo4jSolutions:
  • Verify Neo4j instance is running in AuraDB dashboard
  • Check credentials (URI, username, password) are correct
  • Ensure URI includes neo4j+s:// protocol
  • Test connection using Neo4j Browser

Next Steps

Configuration Guide

Customize Tabby to match your workflow

Keyboard Shortcuts

Master all shortcuts for maximum productivity

Interview Copilot

Learn to use the coding interview assistant

Memory System

Understand how Tabby remembers and learns