* Fix autolayout v1 * Nuke tool call history * Modal v1 * Preview v2 * more updates * Checkpoint * Checkpoint * Better preview * Big stuff * Chat ui * Ui * Update * Changes * Increase token limit for copilot * Preview layout fixes * Checkpoint * sse checkpoint * Checkpoint * Continuation logic * Checkpoint * Updates * UPdates * Updateds * Cleanup * Update * Diff checker * test * Checkpoint * Checkpoint * Checkpoint again * checkpoint again * Chat box output format * Auto open diff canvas * Checkpoint * Checkpoit * Cleaning? * Diff checkpoint * Checkpoint * Persist changes * Autolayout fixces * Color diff fixes * Opusss * Works?? * getting there * Fixes? * Fixes? * Chat fixes * Autolayout fixes * Subblock update diffs * Handle delete diffs * Edge diffs v1 * Deletion edge diff * It works, kinda * Fixes * Update * Docs changes * Prompt fixes and new tool * Persist color changes * Add serper to copilot tools * Get env vars copilot tool * Set env vars copilot tool * Copilot console tool * Promtps * Targeted v1 * Targeted v2 * Targeted updates better * Target fixes * diff works?? * Diff goes away when switching workflows * Fixes * Edge fixes * Remove brief error * Lint * Minor fix * Add abort controller * Prompting * Lint * Fix test * Fix lint * Update csp * Add route to send info to sim agent * Consolidated copilot * First refactor complete * Get user workflow now returns yaml * Checkpoint * Checkpoitn * Works * It works * Hi * Cumulative target edit * Checkpont * Checkpoint * Store updates * Checkpoitn * Smart title generation * Handle copilot aborts * Clean up old copilot code * Refactor tool names * Checkpoint * Remove old route * Fix chat loading * Scope copilot chat to workflow id * New chat fixes * Fix chat loading * Update get all blocks and tools * Make metadata better * Update docs * Conditional update * Yaml refactor * Set up yaml service client * Yaml service migration * Migrate diff engine to sim agent * Refactor diff engine * Fix autolayout problems and clean up code some more * improvement: copilot panel ui/ux * Lint * Cleaning * Fix autolayout * Fix chat output selector * Updated copilot * Small update * Checkpoint system v1 * Checkpoint ui * Copilot ui * Copilot ui * Checkpoint * Accept/reject state * Proper tool call display name updates * Fix tool call display updates * Streaming quality updates? * Abort on refresh/chat switch/workflow switch * Abort v2g * Perf updates * Ui updates * Smoother streaming * Handle edge diffs from sim agent properly * Enable text box while streaming, but keep send disabled * Fix set env var route * Add interrupt param * Add interrupt handler * Interrupt v1 * Interrupt ui update * Update icons * Ui fixes? * Simplify get user workflow tool * Run workflow v1 * Fix edit workflow * Run workflow e2e v1 * Run workflow v2 * Run workflow v3 * v1 of v3, bad code, needs refactro * Lint * Cleaning v1? * Checkpoitn * Fix backend processing of status * State updates * Closer * Icon update * More updates * Checkpoitn * Updates * Chat stays when tabbign * Fix get console logss * Markdown copilot * Fix tool naming for build workflow * Streaming improvements * Use logs for copilot run workflow * Progress * it works? * Fix chat loading * Getting there * Autoscroll to bottom of chat * Fix icons * Lint * Confirm route polling * Cleaning * Lint * Remove migrations * Remove journal entry 64 * Resolve merge conflicts * Db migration * Fix test and lint * Fix tsvector lint error * Fixes --------- Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu>
Sim is a lightweight, user-friendly platform for building AI agent workflows.
Getting Started
- Use our cloud-hosted version
- Self-host using one of the methods below
Self-Hosting Options
Option 1: NPM Package (Simplest)
The easiest way to run Sim locally is using our NPM package:
npx simstudio
After running these commands, open http://localhost:3000/ in your browser.
Options
-p, --port <port>: Specify the port to run Sim on (default: 3000)--no-pull: Skip pulling the latest Docker images
Requirements
- Docker must be installed and running on your machine
Option 2: Docker Compose
# Clone the repository
git clone https://github.com/simstudioai/sim.git
# Navigate to the project directory
cd sim
# Start Sim
docker compose -f docker-compose.prod.yml up -d
Access the application at http://localhost:3000/
Using Local Models
To use local models with Sim:
- Pull models using our helper script:
./apps/sim/scripts/ollama_docker.sh pull <model_name>
- Start Sim with local model support:
# With NVIDIA GPU support
docker compose --profile local-gpu -f docker-compose.ollama.yml up -d
# Without GPU (CPU only)
docker compose --profile local-cpu -f docker-compose.ollama.yml up -d
# If hosting on a server, update the environment variables in the docker-compose.prod.yml file to include the server's public IP then start again (OLLAMA_URL to i.e. http://1.1.1.1:11434)
docker compose -f docker-compose.prod.yml up -d
Option 3: Dev Containers
- Open VS Code with the Remote - Containers extension
- Open the project and click "Reopen in Container" when prompted
- Run
bun run dev:fullin the terminal or use thesim-startalias- This starts both the main application and the realtime socket server
Option 4: Manual Setup
Requirements:
- Bun runtime
- PostgreSQL 12+ with pgvector extension (required for AI embeddings)
Note: Sim uses vector embeddings for AI features like knowledge bases and semantic search, which requires the pgvector PostgreSQL extension.
- Clone and install dependencies:
git clone https://github.com/simstudioai/sim.git
cd sim
bun install
- Set up PostgreSQL with pgvector:
You need PostgreSQL with the vector extension for embedding support. Choose one option:
Option A: Using Docker (Recommended)
# Start PostgreSQL with pgvector extension
docker run --name simstudio-db \
-e POSTGRES_PASSWORD=your_password \
-e POSTGRES_DB=simstudio \
-p 5432:5432 -d \
pgvector/pgvector:pg17
Option B: Manual Installation
- Install PostgreSQL 12+ and the pgvector extension
- See pgvector installation guide
- Set up environment:
cd apps/sim
cp .env.example .env # Configure with required variables (DATABASE_URL, BETTER_AUTH_SECRET, BETTER_AUTH_URL)
Update your .env file with the database URL:
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
- Set up the database:
bunx drizzle-kit migrate
- Start the development servers:
Recommended approach - run both servers together (from project root):
bun run dev:full
This starts both the main Next.js application and the realtime socket server required for full functionality.
Alternative - run servers separately:
Next.js app (from project root):
bun run dev
Realtime socket server (from apps/sim directory in a separate terminal):
cd apps/sim
bun run dev:sockets
Tech Stack
- Framework: Next.js (App Router)
- Runtime: Bun
- Database: PostgreSQL with Drizzle ORM
- Authentication: Better Auth
- UI: Shadcn, Tailwind CSS
- State Management: Zustand
- Flow Editor: ReactFlow
- Docs: Fumadocs
- Monorepo: Turborepo
- Realtime: Socket.io
- Background Jobs: Trigger.dev
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Made with ❤️ by the Sim Team

