multi-cli-studio

skill
Guvenlik Denetimi
Basarisiz
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 58 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in scripts/create-dmg.sh
  • process.env — Environment variable access in scripts/materialize-tauri-signing-key.mjs
  • process.env — Environment variable access in scripts/release-preflight.mjs
  • crypto private key — Private key handling in scripts/release-preflight.mjs
  • os.homedir — User home directory access in scripts/run-tauri.mjs
  • process.env — Environment variable access in scripts/run-tauri.mjs
  • spawnSync — Synchronous process spawning in scripts/setup-desktop-release.mjs
  • fs.rmSync — Destructive file system operation in scripts/setup-desktop-release.mjs
  • process.env — Environment variable access in scripts/setup-desktop-release.mjs
  • crypto private key — Private key handling in scripts/setup-desktop-release.mjs
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

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.

README.md

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
  • 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

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

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

Model Providers

  • manage OpenAI-compatible, Claude, and Gemini providers
  • edit base URL, API key, enabled state, and refresh model lists

Automation

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

Settings

  • inspect installed CLIs, local runtime resources, 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+
  • Tauri CLI 2
  • Windows: MSVC build tools
  • macOS: Xcode Command Line Tools

Install

npm install

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.

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 Tauri desktop bundle, and uploads the macOS DMGs, Windows installer, 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 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.

Full setup and release steps:

License

MIT. See LICENSE.


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!

Yorumlar (0)

Sonuc bulunamadi