Local Installation
Deploy the full stack on your own hardware for maximum privacy and control.
For developers who want full control, privacy, or wish to contribute to the project, you can run the entire Tabby stack locally.
Prerequisites
Before you begin, ensure you have the following installed and accounts created:
Software
- Node.js 18+
- Python 3.12+
- pnpm (for Node package management)
- uv (for Python package management)
Accounts & API Keys
- Supabase (PostgreSQL & Vector Store)
- Neo4j AuraDB (Knowledge Graph)
- AI Providers: At least one of the following:
- OpenAI (Required for the memory backend)
- Groq, Cerebras, Google Gemini, or OpenRouter
- Tavily (Optional: for web search capabilities)
Step-by-Step Setup
Clone the Repository
First, clone the project and navigate into the root directory:
git clone https://github.com/CubeStar1/ai-keyboard.git
cd ai-keyboardInstall Dependencies
Install dependencies for the desktop app, the API backend, and the memory backend:
# 1. Frontend & Windows MCP
cd frontend && pnpm install
# 2. Next.js API Backend
cd ../nextjs-backend && pnpm install
# 3. Python Memory Backend
cd ../backend && uv syncConfigure Environment Variables
Copy the example environment files for each service:
cp frontend/env.example frontend/.env.local
cp nextjs-backend/env.example nextjs-backend/.env
cp backend/env.example backend/.envYou will need to fill these with your credentials.
frontend/.env.local
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
NEXT_PUBLIC_APP_NAME="AI Keyboard"
NEXT_PUBLIC_APP_ICON="/ai-kb-logo.png"
NEXT_PUBLIC_API_URL="http://localhost:3001"
NEXT_PUBLIC_MEMORY_API_URL="http://localhost:8000"nextjs-backend/.env
# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_ADMIN=
# Email
RESEND_API_KEY=
RESEND_DOMAIN=
NEXT_PUBLIC_APP_NAME=Tabby
NEXT_PUBLIC_APP_ICON='/logos/tabby-logo.png'
# AI Providers
OPENAI_API_KEY=
GOOGLE_GENERATIVE_AI_API_KEY=
GROQ_API_KEY=
CEREBRAS_API_KEY=
OPENROUTER_API_KEY=
# Tools
TAVILY_API_KEY=
MEMORY_API_URL="http://localhost:8000"backend/.env
OPENAI_API_KEY=
SUPABASE_CONNECTION_STRING=
NEO4J_URL=
NEO4J_USERNAME=
NEO4J_PASSWORD=
NEO4J_DATABASE=
AURA_INSTANCEID=
AURA_INSTANCENAME=Database Setup
Supabase (PostgreSQL + Vector)
- Create a new project at supabase.com.
- Open the SQL Editor in your Supabase dashboard.
- Run the schema found in
frontend/src/lib/supabase/migrations/schema.sql. - Copy your Project URL, anon key, and Connection String to your respective
.envfiles.
Neo4j (Knowledge Graph)
- Create a free instance at Neo4j AuraDB.
- Save the credentials file (URI, username, password) provided.
- Add these credentials to your
backend/.envfile.
Running the Application
To run the full suite locally, you need to start four separate processes. It's recommended to use four terminal tabs/windows:
cd backend
uv run main.pyPort: 8000
cd nextjs-backend
pnpm devPort: 3001
cd frontend
pnpm windows-mcpPort: 8001
cd frontend
pnpm devPort: 3000
Verification
Once all services are running:
- Look for the Tabby icon in your Windows System Tray.
- Right-click the icon to access Settings, the Brain Panel, or to Quit.
- Press
Ctrl+\to open the Action Menu anywhere on your system. - Press
Ctrl+Alt+Gto trigger AI suggestions while typing.