Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
85e79fc
Add Model Profiles and Visible Models management
sidharthmirch Mar 29, 2026
b8de3d0
Merge pull request #1 from sidharthmirch/claude/prompt-profiles
sidharthmirch Mar 29, 2026
7f8cc4e
Add Prompt Profiles feature
sidharthmirch Mar 29, 2026
792af55
Merge pull request #2 from sidharthmirch/claude/prompt-profiles
sidharthmirch Mar 29, 2026
1f9f183
Document fork changes in README
sidharthmirch Mar 29, 2026
e2fe4cb
Add build instructions and CI/CD workflow
sidharthmirch Mar 29, 2026
233474d
Apply consistent formatting
sidharthmirch Mar 29, 2026
a8f6beb
Fix lint error in VisibleModelsTab
sidharthmirch Mar 29, 2026
7c14044
Address Copilot review comments on build workflow
sidharthmirch Mar 29, 2026
6bc3e04
Skip updater artifact in CI build to avoid signing requirement
sidharthmirch Mar 29, 2026
3441701
Disable updater artifact creation in CI via config override
sidharthmirch Mar 29, 2026
42b8acd
Merge pull request #3 from sidharthmirch/sidharthmirch/build-prod-app
sidharthmirch Mar 29, 2026
35063db
Add GitHub Release support to build workflow
sidharthmirch Mar 29, 2026
604dc9e
Merge pull request #4 from sidharthmirch/sidharthmirch/build-prod-app
sidharthmirch Mar 29, 2026
ee75d7f
Update ambient default to Gemini 2.5 Flash and open model selector
sidharthmirch Mar 29, 2026
202b0d6
Add Gemini 2.5 Flash Lite and use it as ambient default
sidharthmirch Mar 29, 2026
ad0bf0d
Fix tauri-plugin-store version mismatch warning
sidharthmirch Mar 29, 2026
7f43ad3
Fix ambient chat sending toolsets to model
sidharthmirch Mar 29, 2026
c176f49
Merge pull request #5 from sidharthmirch/claude/ambient-model-update
sidharthmirch Mar 29, 2026
2b44292
Bump version: patch to 0.14.6
sidharthmirch Mar 29, 2026
756150d
Merge pull request #6 from sidharthmirch/sidharthmirch/v0.14.6
sidharthmirch Mar 29, 2026
29dadfd
Add "Select All" button and shortcut to model picker
sidharthmirch Mar 29, 2026
7801de8
Fix Prettier formatting in ChatInput.tsx
sidharthmirch Mar 29, 2026
95e3ba1
Merge pull request #7 from sidharthmirch/sidharthmirch/select-all-models
sidharthmirch Mar 29, 2026
0a28aca
Address Copilot review: filter ungated models, deduplicate logic, fix…
sidharthmirch Mar 29, 2026
a9f3895
Merge pull request #8 from sidharthmirch/sidharthmirch/select-all-fol…
sidharthmirch Mar 29, 2026
6eb6e38
Bump version to 0.14.7
sidharthmirch Mar 29, 2026
7531cdd
Merge pull request #9 from sidharthmirch/sidharthmirch/publish-release
sidharthmirch Mar 29, 2026
b28f086
Update README
sidharthmirch Mar 29, 2026
e4b3f1b
Add configurable chat title generation model
sidharthmirch Mar 29, 2026
8bf5708
Fix Prettier formatting in simpleLLM.ts
sidharthmirch Mar 29, 2026
3c77731
Address Copilot review: centralize provider factory, fix ambient mode…
sidharthmirch Mar 29, 2026
c2d1856
Merge pull request #10 from sidharthmirch/sidharthmirch/chat-titles
sidharthmirch Mar 29, 2026
0a4149b
Add minimize column and auto-reorder on stop for multi-model chat
sidharthmirch Mar 30, 2026
ca7650b
Fix minimize/stop features to target ToolsBlockView (actual multi-mod…
sidharthmirch Mar 30, 2026
c4d2f18
Address Copilot review: fix crash, state leak, Set churn, and sort by…
sidharthmirch Mar 30, 2026
d6be7b6
Fix Prettier formatting failures in CI
sidharthmirch Mar 30, 2026
e37ddbd
Address Copilot review: fix crash, state leak, Set churn, and sort by…
sidharthmirch Mar 30, 2026
8e0796d
Move minimized panel to page level so full chat shifts right
sidharthmirch Mar 30, 2026
7f3045c
Fix hooks-order crash by moving useMemo before early returns
sidharthmirch Mar 30, 2026
fd57a33
Move minimized models panel into AppSidebar
sidharthmirch Mar 30, 2026
49b17ca
Add retry flow for failed minimized compare models
sidharthmirch Mar 30, 2026
b510d05
Handle tool-unsupported failures and draft regen
sidharthmirch Mar 30, 2026
55b98af
Add indicator for re-added models
sidharthmirch Mar 30, 2026
6919413
Show included models and restore minimized behavior
sidharthmirch Mar 30, 2026
4347d36
Merge pull request #11 from sidharthmirch/sidharthmirch/minimize-chat…
sidharthmirch Mar 30, 2026
9e6e24f
Bump version to 0.14.8
sidharthmirch Mar 30, 2026
51243ad
Format tauri config files
sidharthmirch Mar 30, 2026
e04b0b9
Update README with v0.14.8 changes
sidharthmirch Mar 30, 2026
45cfcaa
Fix sidebar title refresh
sidharthmirch Mar 30, 2026
23a257f
Format chat title generation
sidharthmirch Mar 30, 2026
2c0b5aa
fix terminal command in README
sidharthmirch Mar 30, 2026
2ebe4e1
Fix prompt profile pill behavior and layout
sidharthmirch Mar 30, 2026
903e91f
Fix onSuccess no-op when title generation skipped
Copilot Mar 30, 2026
2ff6486
Merge pull request #12 from sidharthmirch/sidharthmirch/chat-title-au…
sidharthmirch Mar 30, 2026
d397025
Merge pull request #13 from sidharthmirch/sidharthmirch/prompt-profile
sidharthmirch Mar 30, 2026
305097e
Bump version to 0.14.9
sidharthmirch Mar 30, 2026
591d3e5
Merge pull request #14 from sidharthmirch/sidharthmirch/release-0.14.9
sidharthmirch Mar 30, 2026
14257ca
chore: bump version to 0.14.10
sidharthmirch Mar 30, 2026
6212239
update cursor config
sidharthmirch Mar 30, 2026
a06ddbd
Merge branch 'main' of https://github.com/sidharthmirch/chorus
sidharthmirch Mar 30, 2026
96e7100
feat: drag-and-drop reorder of model columns in compare view
sidharthmirch Mar 31, 2026
e13b403
refactor: use selected state to trigger drag instead of hover grip
sidharthmirch Mar 31, 2026
a0df840
feat: sort tools-mode model columns by completion order
sidharthmirch Mar 31, 2026
4ffcc95
perf: switch to @dnd-kit with DragOverlay for responsive column drag
sidharthmirch Mar 31, 2026
501ad61
Refine tools drag-reorder UX and default selection behavior
sidharthmirch Mar 31, 2026
b324ff4
Fix tools selection/drag UX and format affected files
sidharthmirch Mar 31, 2026
9e7581e
Address Copilot review feedback on ordering and layout animations
sidharthmirch Mar 31, 2026
ec4424d
Merge pull request #15 from sidharthmirch/claude/drag-reorder-model-cols
sidharthmirch Mar 31, 2026
c965eb3
Bump version to v0.14.11
sidharthmirch Mar 31, 2026
4209145
Persist compare model selection per chat and add default new-chat mod…
sidharthmirch Mar 31, 2026
5a1384c
Merge origin/main into profile-states branch
sidharthmirch Mar 31, 2026
7eddac3
Improve model picker: profile Apply, Select All hint, union shortcut
sidharthmirch Mar 31, 2026
403f6e9
Format ManageModelsBox with Prettier
sidharthmirch Mar 31, 2026
0116b20
Merge pull request #16 from sidharthmirch/emdash/profile-states-curso…
sidharthmirch Mar 31, 2026
b2627b3
Add Defaults settings tab, chat creation defaults, and fresh-install …
sidharthmirch Mar 31, 2026
20108cc
Address Copilot PR review comments and fix Prettier formatting
sidharthmirch Mar 31, 2026
546bfab
Fix ESLint error and add per-project default prompt profile
sidharthmirch Mar 31, 2026
bd9b6b8
Replace as SettingsTabId assertion with type guard
sidharthmirch Mar 31, 2026
2ea6735
Fix TSC error: resolve tab param separately from typed tab prop
sidharthmirch Mar 31, 2026
0ae47db
update README for v0.14.12
sidharthmirch Mar 31, 2026
ab006b7
Merge pull request #17 from sidharthmirch/emdash/defaults-menu-78y
sidharthmirch Mar 31, 2026
b61c61d
Bump version to 0.14.12 (#18)
sidharthmirch Mar 31, 2026
08a9532
Deselect model block when clicking outside or re-clicking selected block
sidharthmirch Mar 31, 2026
f7dc198
Address Copilot review: text-selection guard, Node typecheck, pending…
sidharthmirch Mar 31, 2026
a994c0e
enable deselecting models
sidharthmirch Mar 31, 2026
9dc6eb6
Fix sidepane blur on reply messages
sidharthmirch Mar 31, 2026
8be197b
Merge pull request #20 from sidharthmirch/sidharthmirch/fix-sidepane-…
sidharthmirch Mar 31, 2026
cf31cbf
Fix cmd+number keybindings for tools and compare blocks
sidharthmirch Mar 31, 2026
ccaa390
Address Copilot review: memoize activeMessages, fix clearChat, block:…
sidharthmirch Mar 31, 2026
f0b61c6
Merge pull request #21 from sidharthmirch/sidharthmirch/fix-cmd-numbe…
sidharthmirch Mar 31, 2026
4f47c18
Auto-scroll on CMD+number and rebind CMD+Shift+Space to pop-to-front
sidharthmirch Apr 5, 2026
1a8ef45
Fix profile model selection fallback
sidharthmirch Apr 7, 2026
70e923a
Fix cmd+number block selection toggle-off behavior
sidharthmirch Apr 7, 2026
23cfa13
Merge pull request #22 from sidharthmirch/sidharthmirch/profile-scroll
sidharthmirch Apr 7, 2026
d3430a8
Bump version to 0.14.14
sidharthmirch Apr 7, 2026
f1de965
fix(chat): pass model_config UUID instead of modelId when replying to…
sidharthmirch Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cursor/worktrees.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"setup-worktree": ["pnpm run setup"]
}
101 changes: 101 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Build and Release

on:
pull_request:
branches:
- main
workflow_dispatch:
inputs:
release_tag:
description: "Release tag (e.g. v0.14.5). Leave empty to skip release creation."
required: false
default: ""

jobs:
build:
runs-on: macos-latest
permissions:
contents: write
strategy:
fail-fast: false
matrix:
target:
- aarch64-apple-darwin
- x86_64-apple-darwin
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
cache: true
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build for ${{ matrix.target }}
run: |
rustup target add ${{ matrix.target }}
pnpm tauri build --target ${{ matrix.target }} --config '{"bundle":{"createUpdaterArtifacts":false}}'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Zip .app bundle
run: |
cd src-tauri/target/${{ matrix.target }}/release/bundle/macos
zip -r Chorus.app.zip Chorus.app
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: bundle-${{ matrix.target }}
path: |
src-tauri/target/${{ matrix.target }}/release/bundle/macos/Chorus.app.zip
src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg

release:
needs: build
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != ''
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Rename artifacts for clarity
run: |
mkdir -p release-assets
# aarch64 (Apple Silicon)
cp artifacts/bundle-aarch64-apple-darwin/macos/Chorus.app.zip release-assets/Chorus-aarch64.app.zip
cp artifacts/bundle-aarch64-apple-darwin/dmg/*.dmg release-assets/ 2>/dev/null && \
mv release-assets/Chorus_*.dmg release-assets/Chorus-aarch64.dmg || true
# x86_64 (Intel)
cp artifacts/bundle-x86_64-apple-darwin/macos/Chorus.app.zip release-assets/Chorus-x86_64.app.zip
cp artifacts/bundle-x86_64-apple-darwin/dmg/*.dmg release-assets/ 2>/dev/null && \
mv release-assets/Chorus_*.dmg release-assets/Chorus-x86_64.dmg || true
ls -la release-assets/
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.release_tag }}
name: ${{ github.event.inputs.release_tag }}
body: |
## Chorus ${{ github.event.inputs.release_tag }}

### Downloads
- **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg`
- **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg`

> **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper.
files: release-assets/*
draft: false
prerelease: false
36 changes: 36 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Building Chorus

Chorus is built using Tauri, React, TypeScript, and Rust. To build the application yourself, follow these steps.

## Prerequisites

- [Node.js](https://nodejs.org/) (version >= 22.0.0)
- [pnpm](https://pnpm.io/)
- [Rust](https://www.rust-lang.org/) and Cargo
- [Git LFS](https://git-lfs.com/)

## Installation

1. Clone the repository and navigate to the directory.
2. Initialize Git LFS:

```bash
git lfs install --force
git lfs pull
```

3. Install dependencies:

```bash
pnpm install
```

## Building the App

To build the production app for your platform, run:

```bash
pnpm tauri build
```

This will generate the application bundle (e.g., `.app` for macOS) in `src-tauri/target/release/bundle/`.
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,19 @@
<img src="https://github.com/user-attachments/assets/771262eb-5a0e-40cb-b1a5-9df6b903c626" alt="Chorus screenshot" />
</p>

# Fork changes

- Added profiles for favorite models in the chat window
- Dynamically fetch and select models from providers
- Prompt profiles: Choose your preferred chat persona
- Minimize model columns in multi-model chat with sidebar management and auto-minimize on empty responses
- Move model responses around in their row, changing the order they are displayed to you in
- Ability to customize default models (multi-model chat and ambient chat)
- Set app and project specific default prompt profiles

> **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper.
> Alternatively, remove the quarantine flag via Terminal: `xattr -d com.apple.quarantine Chorus.app`

# Getting Started

You will need:
Expand All @@ -29,6 +42,10 @@ pnpm run setup # This is also our Conductor setup script
pnpm run dev # This is also our Conductor run script
```

# Building Chorus

To build Chorus from source, please refer to the [BUILD.md](BUILD.md) file.

# Nightly Build

You can download the [nightly build here](https://cdn.crabnebula.app/download/chorus/chorus/latest/platform/dmg-aarch64?channel=qa). Every push to main triggers a new build.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "chorus",
"license": "MIT",
"private": true,
"version": "0.14.5",
"version": "0.14.14",
"type": "module",
"scripts": {
"tauri": "tauri",
Expand Down Expand Up @@ -82,7 +82,7 @@
"@tauri-apps/plugin-process": "~2.2.1",
"@tauri-apps/plugin-shell": "~2.2.1",
"@tauri-apps/plugin-sql": "~2.2.0",
"@tauri-apps/plugin-store": "~2.1.0",
"@tauri-apps/plugin-store": "~2.2.0",
"@tauri-apps/plugin-stronghold": "~2.2.0",
"@tauri-apps/plugin-updater": "~2.7.1",
"@types/jest": "^29.5.14",
Expand Down
Loading
Loading