Siddharth GanesanandEmir Karabeg ab85c1a215 feat(copilot): implement copilot (#850)
* 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>
2025-08-02 15:30:33 -07:00
2025-07-22 13:02:24 -07:00
2025-04-01 12:10:58 -07:00
2025-07-29 12:51:43 -07:00

Sim Logo

License: Apache-2.0 Discord Twitter PRs welcome Documentation

Sim is a lightweight, user-friendly platform for building AI agent workflows.

Sim Demo

Getting Started

  1. Use our cloud-hosted version
  2. 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:

  1. Pull models using our helper script:
./apps/sim/scripts/ollama_docker.sh pull <model_name>
  1. 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

  1. Open VS Code with the Remote - Containers extension
  2. Open the project and click "Reopen in Container" when prompted
  3. Run bun run dev:full in the terminal or use the sim-start alias
    • This starts both the main application and the realtime socket server

Option 4: Manual Setup

Requirements:

Note: Sim uses vector embeddings for AI features like knowledge bases and semantic search, which requires the pgvector PostgreSQL extension.

  1. Clone and install dependencies:
git clone https://github.com/simstudioai/sim.git
cd sim
bun install
  1. 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

  1. 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"
  1. Set up the database:
bunx drizzle-kit migrate 
  1. 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

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

Languages
TypeScript 77%
MDX 20.8%
JavaScript 1.9%
CSS 0.1%