Skip to content

goblinunde/multi-cli-studio

Repository files navigation

Multi CLI Studio

简体中文

Multi CLI Studio is a Tauri desktop workspace for people who do not want to be locked into a single AI coding CLI or a single model vendor.

Instead of forcing one tool to do everything, it gives you one local desktop surface for:

  • Codex, Claude, and Gemini CLI workflows
  • unified platform account management for API Providers, Codex, Gemini, and Kiro
  • provider-based model chat for OpenAI-compatible, Claude, and Gemini
  • local automation jobs and workflows
  • shared local state across terminal, chat, and automation

Why This Exists

Most AI coding tools assume one model, one CLI, one workflow.

That is not how real work behaves:

  • one CLI may be better at edits, another at planning, another at UI or long-context work
  • comparing outputs across agents is often safer than trusting a single tool path
  • context gets fragmented when terminal, chat, and automation live in different apps
  • local project state matters, but most tools do not coordinate around it

Multi CLI Studio is built around a different assumption:

cross-CLI orchestration is the product, not an add-on

Core Value

  • Keep project context in one place while switching between different AI execution styles
  • Use CLI-native agent workflows and provider-based chat side by side
  • Turn repeated tasks into local automation instead of re-prompting from scratch
  • Keep runtime state local with desktop-native storage and tooling

Platform Support

  • Windows desktop: primary packaged target with release workflow for installer output
  • macOS desktop: supported through the Tauri desktop stack and local build flow
  • Linux desktop: supported for local development and local builds, including Fedora; GitHub Releases now also publish a Fedora RPM artifact

Screenshots

Dashboard

Dashboard

Terminal Workspace

Terminal Workspace

Model Chat

Model Chat

Model Providers

Model Providers

Automation Jobs

Automation Jobs

Automation Workflows

Automation Workflows

Settings

Settings

Current Capabilities

Terminal and CLI Workspace

  • unified desktop surface for Codex, Claude, and Gemini
  • persistent sessions and chat-like execution history
  • streaming output rendered directly into the UI
  • slash commands for model, permissions, effort, plan mode, context, and session controls
  • integrated git side panel to keep working-tree changes visible during execution

Model Chat and Provider Layer

  • provider-backed chat for OpenAI-compatible, Claude, and Gemini
  • per-turn model switching inside the same conversation thread
  • local provider management with editable API key, base URL, enable state, and model catalog
  • useful for side-by-side comparison, quick iteration, and non-CLI model usage

Platform Center and Account Management

  • unified platform center for API Providers, Codex, Gemini, and Kiro
  • OAuth, manual import, local account import, account export, and current-account switching
  • Codex provider quick-switch, Gemini account injection, and Kiro credits/account views
  • desktop-side global proxy and per-platform quota auto-refresh settings

Automation and Workflow Layer

  • automation jobs with execution summaries, state, and logs
  • workflow editor and workflow run canvas for multi-step flows
  • repeatable local orchestration for AI-assisted tasks

Local Runtime and Persistence

  • local-first storage with SQLite and JSON
  • Tauri 2 desktop runtime with Rust backend and React frontend
  • CLI and local resource detection in Settings
  • release workflow and version sync tooling already wired into the repo

Main Pages

Dashboard

  • workspace snapshot with project root, dirty files, checks, events, and traffic

Terminal

  • primary multi-CLI execution page
  • combines conversation history, prompt bar, streaming output, slash commands, and git changes

Model Chat

  • dedicated provider-based conversation page
  • keeps one thread while letting users switch model/provider selection turn by turn

Platform Center

  • overview hub for API providers plus Codex, Gemini, and Kiro account centers
  • manage provider credentials, platform accounts, local instances, and refresh behavior

Automation

  • jobs, workflow lists, workflow editor, run details, and execution logs

Settings

  • inspect installed CLIs, local runtime resources, proxy / refresh settings, and environment-related state

Tech Stack

Frontend

  • React 19
  • TypeScript
  • Vite 7
  • React Router DOM 7
  • Zustand
  • Tailwind CSS 4
  • Monaco Editor
  • ECharts
  • react-markdown + remark-gfm

Backend

  • Rust 1.88
  • Tauri 2
  • rusqlite
  • serde / serde_json
  • chrono / uuid
  • reqwest
  • lettre
  • cron

Project Structure

multi-cli-studio/
├─ src/
│  ├─ components/
│  │  ├─ chat/
│  │  └─ modelProviders/
│  ├─ layouts/
│  ├─ lib/
│  └─ pages/
│     ├─ DashboardPage.tsx
│     ├─ TerminalPage.tsx
│     ├─ ModelChatPage.tsx
│     ├─ ModelProvidersPage.tsx
│     ├─ ModelProviderEditorPage.tsx
│     ├─ AutomationJobsPage.tsx
│     ├─ AutomationWorkflowsPage.tsx
│     ├─ AutomationWorkflowEditorPage.tsx
│     ├─ AutomationJobEditorPage.tsx
│     └─ SettingsPage.tsx
├─ src-tauri/
│  ├─ src/
│  │  ├─ main.rs
│  │  ├─ automation.rs
│  │  ├─ storage.rs
│  │  └─ acp.rs
│  ├─ tauri.conf.json
│  └─ Cargo.toml
├─ docs/
│  └─ screenshots/
├─ scripts/
│  ├─ run-tauri.mjs
│  └─ sync-version.mjs
├─ .github/
│  └─ workflows/
│     └─ release-desktop.yml
├─ README.md
├─ README.zh-CN.md
└─ package.json

Getting Started

Prerequisites

  • Node.js 20+
  • Rust 1.88+ (a current stable toolchain is fine)
  • Fedora system packages required by Tauri 2:
sudo dnf install webkit2gtk4.1-devel \
  openssl-devel \
  curl \
  wget \
  file \
  libappindicator-gtk3-devel \
  librsvg2-devel \
  libxdo-devel

sudo dnf group install "c-development"
  • Windows: MSVC build tools
  • macOS: Xcode Command Line Tools

@tauri-apps/cli is already included as a local dev dependency, so you do not need a separate global Tauri CLI install for npm run tauri:dev.

Install

npm install

If Rust is not installed yet, install a stable toolchain with rustup before running the desktop app.

Run Frontend Only

npm run dev

Run Desktop App

npm run tauri:dev

Build

npm run build
npm run tauri:build

Scripts

  • npm run dev: start Vite dev server
  • npm run build: type-check and build frontend
  • npm run preview: preview the built frontend
  • npm run tauri:dev: run the Tauri desktop app in development
  • npm run tauri:build: build desktop bundles
  • npm run tauri:android: run Android flow through the wrapper script
  • npm run version:sync -- <version>: sync package.json, Cargo.toml, and tauri.conf.json
  • npm run version:check -- <version>: verify version metadata alignment

Provider Notes

Gemini Base URL

Recommended:

https://generativelanguage.googleapis.com

Also valid:

https://generativelanguage.googleapis.com/v1beta

Do not put models/...:streamGenerateContent or ?key=... into the base URL field.

Gemini OAuth Setup

The desktop Gemini OAuth flow no longer ships client credentials in the repository. Set these environment variables before launching the app:

export MULTI_CLI_STUDIO_GEMINI_OAUTH_CLIENT_ID="your-google-oauth-client-id"
export MULTI_CLI_STUDIO_GEMINI_OAUTH_CLIENT_SECRET="your-google-oauth-client-secret"

If you do not want to manage OAuth client credentials, use local account import from ~/.gemini/oauth_creds.json or one of the API-key based Gemini modes instead.

Data Storage

Application data is stored in local app-data directories:

  • Windows: %LOCALAPPDATA%\multi-cli-studio
  • Linux: ~/.local/share/multi-cli-studio
  • macOS: ~/Library/Application Support/multi-cli-studio

Common files:

  • terminal-state.db
  • session.json
  • automation-jobs.json
  • automation-runs.json
  • automation-rules.json

Release

The repo already includes a desktop release workflow:

  • .github/workflows/release-desktop.yml

It synchronizes version metadata, builds the desktop release artifacts, and uploads the macOS DMGs, Windows installer, Fedora RPMs, and latest.json update feed to GitHub Releases.

The current distribution flow is intentionally low-cost:

  • It does not rely on Apple Developer ID or notarization.
  • macOS builds use ad-hoc signing, so first launch may require manually allowing the app in Privacy & Security.
  • In-app updates currently target the macOS and Windows release artifacts; Fedora RPMs are published as manual download assets.
  • In-app updates still require a real Tauri updater keypair: put the public key in src-tauri/tauri.conf.json and configure the private key in GitHub Actions secrets.

This fork also keeps the checked-in updater feed aligned with the current GitHub repository, and the release setup/check scripts now recognize GitHub SSH aliases such as git@github_alias:owner/repo.git.

Full setup and release steps:

Project Provenance

Acknowledgments

  • Thanks to Austin-Patrician for publishing the original multi-cli-studio codebase.
  • Thanks to jlcodes99 for openly sharing cockpit-tools and the surrounding product ideas.
  • Thanks to everyone on LinuxDo for the discussion, feedback, and testing support.

License

This repository defaults to CC BY-NC-SA 4.0.

  • Allowed: personal learning, research, and non-commercial use or modification, with attribution and share-alike obligations.
  • Not allowed: commercial use without separate written authorization, including internal business use, paid services, paid integrations, or resale.
  • Commercial license: contact the current maintainer for separate written authorization and pricing.
  • The upstream MIT notice for inherited portions from Austin-Patrician/multi-cli-studio is preserved in LICENSE.

Additional provenance and attribution details are in NOTICE.md.


Finally,Thanks to everyone on LinuxDo for their support! Welcome to join https://linux.do/ for all kinds of technical exchanges, cutting-edge AI information, and AI experience sharing, all on Linuxdo!

About

基于Linux do 大佬开发Linux的适配,优先保证Fedora系的,并融合功能:https://github.com/jlcodes99/cockpit-tools

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages