Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
919a98d
refactor(settings): fold verified domains into SSO, move group-detail…
waleedlatif1 Jul 25, 2026
2272d4c
fix(skills): show the new skill after creating it (#5949)
waleedlatif1 Jul 25, 2026
e39045d
improvement(data-drains): move drains to the fullscreen list/detail p…
waleedlatif1 Jul 25, 2026
49bf3f2
fix(settings): a11y labels, URL-backed member search, and design-syst…
waleedlatif1 Jul 25, 2026
8a2ae25
improvement(agent-streaming): add way to opt in for workflow executio…
icecrasher321 Jul 25, 2026
cafc9aa
test(data-drains): cover the migrated detail and create surfaces (#5958)
waleedlatif1 Jul 25, 2026
ca77908
fix(ci): skip lifecycle scripts on CI installs (#5959)
waleedlatif1 Jul 25, 2026
19c3b6f
feat(setup): setup wizard with browser-based Chat key handoff (#5911)
TheodoreSpeaks Jul 25, 2026
892750b
fix(autolayout): keep branches in stable rows across layers (#5877)
TheodoreSpeaks Jul 25, 2026
8329dac
feat(tables): add select & multi-select column types (#5873)
TheodoreSpeaks Jul 25, 2026
0dcbc56
feat(tables): per-table mutation locks (schema/insert/update/delete) …
TheodoreSpeaks Jul 25, 2026
7f4cc38
improvement(tables): show the lock chip only when a table is actually…
TheodoreSpeaks Jul 25, 2026
1a4bfe4
fix(setup,compose): bundle Redis, fix socket reconnect, and harden th…
TheodoreSpeaks Jul 25, 2026
104a6fc
fix(tables): make the atomic per-cell merge the only row-write path (…
waleedlatif1 Jul 27, 2026
49adf91
improvement(pii): clarify custom regex replacement placeholder (#5975)
TheodoreSpeaks Jul 27, 2026
bd61603
feat(tiktok): unhide integration (#5978)
BillLeoutsakosvl346 Jul 27, 2026
ae49070
fix(slack): stop requesting the unapproved scopes, gate them behind a…
TheodoreSpeaks Jul 27, 2026
67ffdac
improvement(mship): mcp persistence in chat
Sg312 Jul 27, 2026
54c3e1c
improvement(chat): defer resource-menu list queries until the menu op…
waleedlatif1 Jul 27, 2026
6d48444
fix(docs): render native block icons instead of the two-letter fallba…
waleedlatif1 Jul 27, 2026
66ac015
fix(library): generate every post cover from one template (#5980)
waleedlatif1 Jul 27, 2026
9c10943
fix(content): stop wide markdown tables breaking the mobile layout (#…
waleedlatif1 Jul 27, 2026
334c7c8
fix(security): suppress the CodeQL password-hash alert on sha256Hex (…
TheodoreSpeaks Jul 27, 2026
4edc169
fix(files): preserve nested folder structure when archiving workspace…
waleedlatif1 Jul 27, 2026
23bc210
fix(seo): noindex non-production sim.ai hosts, redirect indexed 404s …
waleedlatif1 Jul 27, 2026
75b8b6f
feat(settings): self-host settings plane, Sim wordmark in sidebar (#5…
TheodoreSpeaks Jul 28, 2026
fc396fc
improvement(settings): match standalone shell chrome to the workspace…
TheodoreSpeaks Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ jobs:
${{ runner.os }}-bun-

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Deploy to Trigger.dev
working-directory: ./apps/sim
Expand Down Expand Up @@ -584,7 +584,7 @@ jobs:
bun-version: 1.3.13

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Create release
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs-embeddings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
${{ runner.os }}-bun-

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Process docs embeddings
working-directory: ./apps/sim
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/migrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
${{ runner.os }}-bun-

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

# The expression maps the explicit environment input to exactly one repo
# secret, so the job never holds another environment's database URL. An
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Node.js for npm publishing
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: '18'
node-version: '22'
registry-url: 'https://registry.npmjs.org/'

- name: Cache Bun dependencies
Expand All @@ -41,7 +41,7 @@ jobs:

- name: Install dependencies
working-directory: packages/cli
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Build package
working-directory: packages/cli
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-ts-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
${{ runner.os }}-bun-

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Run tests
working-directory: packages/ts-sdk
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
path: ./.turbo

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

# Surfaces known CVEs in the dependency tree. Non-blocking until the
# existing advisory backlog is triaged, then flip to a required gate by
Expand Down Expand Up @@ -278,7 +278,7 @@ jobs:
fi

- name: Install dependencies
run: bun install --frozen-lockfile
run: bun install --frozen-lockfile --ignore-scripts

- name: Build application
env:
Expand Down
74 changes: 19 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,12 @@
### Self-hosted

```bash
npx simstudio
git clone https://github.com/simstudioai/sim.git && cd sim
bun run setup
```

Open [http://localhost:3000](http://localhost:3000)

Docker must be installed and running. Use `-p, --port <port>` to run Sim on a different port, or `--no-pull` to skip pulling the latest Docker images.

<p align="center">
<img src="apps/sim/public/static/readme-platform.png" alt="The Sim platform — chat on the left, the visual workflow builder on the right" width="100%"/>
</p>
Expand Down Expand Up @@ -75,71 +74,36 @@ Docker must be installed and running. Use `-p, --port <port>` to run Sim on a di

## Self-hosting

### Docker Compose

```bash
git clone https://github.com/simstudioai/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d
```

Open [http://localhost:3000](http://localhost:3000)

Sim also supports local models via [Ollama](https://ollama.ai) and [vLLM](https://docs.vllm.ai/). See the [Docker self-hosting docs](https://docs.sim.ai/self-hosting/docker) for setup details.

### Manual Setup

**Requirements:** [Bun](https://bun.sh/), [Node.js](https://nodejs.org/) v20+, PostgreSQL 12+ with [pgvector](https://github.com/pgvector/pgvector)

1. Clone and install:
**Requirements:** [Bun](https://bun.sh/) and [Docker](https://www.docker.com/).

```bash
git clone https://github.com/simstudioai/sim.git
cd sim
bun install
bun run prepare # Set up pre-commit hooks
```

2. Set up PostgreSQL with pgvector:

```bash
docker run --name simstudio-db -e POSTGRES_PASSWORD=your_password -e POSTGRES_DB=simstudio -p 5432:5432 -d pgvector/pgvector:pg17
```
`bun run setup` is an interactive wizard: it provisions the database, generates secrets, writes your `.env` files, connects a Chat API key, and starts Sim the way you choose:

Or install manually via the [pgvector guide](https://github.com/pgvector/pgvector#installation).
- **Local dev** — run from source to contribute or hack on Sim
- **Docker Compose** — a self-contained instance for testing self-hosting
- **Kubernetes (Helm)** — deploy to a local cluster

3. Configure environment:
When it finishes, open [http://localhost:3000](http://localhost:3000).

```bash
cp apps/sim/.env.example apps/sim/.env
# Create your secrets
perl -i -pe "s/your_encryption_key/$(openssl rand -hex 32)/" apps/sim/.env
perl -i -pe "s/your_internal_api_secret/$(openssl rand -hex 32)/" apps/sim/.env
perl -i -pe "s/your_api_encryption_key/$(openssl rand -hex 32)/" apps/sim/.env
# DB configs for migration
cp packages/db/.env.example packages/db/.env
# Edit both .env files to set DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
```

4. Run migrations:
Manage your install with `bun run sim`:

```bash
cd packages/db && bun run db:migrate
bun run sim start | stop | restart # bring your install up / down / cycle
bun run sim status # what's installed and healthy
bun run sim logs # follow logs
bun run sim doctor # diagnose configuration problems
bun run sim down # remove containers (data kept)
bun run sim reset # archive .env and wipe managed data
```

5. Start development servers:
`sim` detects how you're running (Docker Compose, local dev, or Kubernetes) and acts accordingly.

```bash
bun run dev:full # Starts Next.js app and realtime socket server
```
Prefer a bare `sim`? Run `bun link` once — but note `sim` lands in `~/.bun/bin`, which Homebrew's bun doesn't add to your PATH, so you may need `export PATH="$HOME/.bun/bin:$PATH"` in your shell profile.

Or run separately: `bun run dev` (Next.js) and `cd apps/sim && bun run dev:sockets` (realtime).
Sim also supports local models via [Ollama](https://ollama.ai) and [vLLM](https://docs.vllm.ai/). See the [self-hosting docs](https://docs.sim.ai/self-hosting/docker) for details.

## Chat API Keys

Chat is a Sim-managed service. To use Chat on a self-hosted instance:

- Go to https://sim.ai → Settings → Chat keys and generate a Chat API key
- Set `COPILOT_API_KEY` environment variable in your self-hosted apps/sim/.env file to that value
Chat is a Sim-managed service. `bun run setup` connects a Chat API key for you — sign in when it opens your browser and the key is stored automatically. To view, create, or revoke keys later, go to [sim.ai/selfhost/settings/chat-keys](https://sim.ai/selfhost/settings/chat-keys).

## Environment Variables

Expand Down
29 changes: 28 additions & 1 deletion apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3683,6 +3683,20 @@ export const AnthropicIcon = (props: SVGProps<SVGSVGElement>) => (
</svg>
)

export const ClaudeIcon = (props: SVGProps<SVGSVGElement>) => (
<svg
{...props}
fill='currentColor'
height='1em'
viewBox='0 0 100 100'
width='1em'
xmlns='http://www.w3.org/2000/svg'
>
<title>Claude</title>
<path d='m19.6 66.5 19.7-11 .3-1-.3-.5h-1l-3.3-.2-11.2-.3L14 53l-9.5-.5-2.4-.5L0 49l.2-1.5 2-1.3 2.9.2 6.3.5 9.5.6 6.9.4L38 49.1h1.6l.2-.7-.5-.4-.4-.4L29 41l-10.6-7-5.6-4.1-3-2-1.5-2-.6-4.2 2.7-3 3.7.3.9.2 3.7 2.9 8 6.1L37 36l1.5 1.2.6-.4.1-.3-.7-1.1L33 25l-6-10.4-2.7-4.3-.7-2.6c-.3-1-.4-2-.4-3l3-4.2L28 0l4.2.6L33.8 2l2.6 6 4.1 9.3L47 29.9l2 3.8 1 3.4.3 1h.7v-.5l.5-7.2 1-8.7 1-11.2.3-3.2 1.6-3.8 3-2L61 2.6l2 2.9-.3 1.8-1.1 7.7L59 27.1l-1.5 8.2h.9l1-1.1 4.1-5.4 6.9-8.6 3-3.5L77 13l2.3-1.8h4.3l3.1 4.7-1.4 4.9-4.4 5.6-3.7 4.7-5.3 7.1-3.2 5.7.3.4h.7l12-2.6 6.4-1.1 7.6-1.3 3.5 1.6.4 1.6-1.4 3.4-8.2 2-9.6 2-14.3 3.3-.2.1.2.3 6.4.6 2.8.2h6.8l12.6 1 3.3 2 1.9 2.7-.3 2-5.1 2.6-6.8-1.6-16-3.8-5.4-1.3h-.8v.4l4.6 4.5 8.3 7.5L89 80.1l.5 2.4-1.3 2-1.4-.2-9.2-7-3.6-3-8-6.8h-.5v.7l1.8 2.7 9.8 14.7.5 4.5-.7 1.4-2.6 1-2.7-.6-5.8-8-6-9-4.7-8.2-.5.4-2.9 30.2-1.3 1.5-3 1.2-2.5-2-1.4-3 1.4-6.2 1.6-8 1.3-6.4 1.2-7.9.7-2.6v-.2H49L43 72l-9 12.3-7.2 7.6-1.7.7-3-1.5.3-2.8L24 86l10-12.8 6-7.9 4-4.6-.1-.5h-.3L17.2 77.4l-4.7.6-2-2 .2-3 1-1 8-5.5Z' />
</svg>
)

export function AzureIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const gradient0 = `azure_paint0_${id}`
Expand Down Expand Up @@ -3823,6 +3837,20 @@ export const ZaiIcon = (props: SVGProps<SVGSVGElement>) => (
</svg>
)

export const KimiIcon = (props: SVGProps<SVGSVGElement>) => (
<svg {...props} height='1em' viewBox='0 0 24 24' width='1em' xmlns='http://www.w3.org/2000/svg'>
<title>Kimi</title>
<path
d='M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z'
fill='#1783FF'
/>
<path
d='M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z'
fill='currentColor'
/>
</svg>
)

export function MetaIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const gradient1Id = `meta_gradient_1_${id}`
Expand Down Expand Up @@ -5723,7 +5751,6 @@ export function SmtpIcon(props: SVGProps<SVGSVGElement>) {
strokeLinecap='round'
strokeLinejoin='round'
/>
<circle cx='24' cy='6' r='4' fill='currentColor' stroke='none' />
</svg>
)
}
Expand Down
2 changes: 0 additions & 2 deletions apps/docs/components/navbar/navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import { ChipLink } from '@sim/emcn'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { LanguageDropdown } from '@/components/ui/language-dropdown'
import { SearchTrigger } from '@/components/ui/search-trigger'
import { SimWordmark } from '@/components/ui/sim-logo'
import { ThemeToggle } from '@/components/ui/theme-toggle'
Expand Down Expand Up @@ -53,7 +52,6 @@ export function Navbar() {
</div>

<div className='flex items-center gap-2'>
<LanguageDropdown />
<ThemeToggle />
<ChipLink href='https://sim.ai' variant='primary'>
Get started
Expand Down
Loading
Loading