Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,308 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StackFerry

Desktop configuration and routing manager for AI coding tools

简体中文 | English

Release CI Platform License

Download · All releases · Release notes

StackFerry is a Tauri desktop application for managing providers, credentials, models, and active routes across AI coding tools. It combines configuration management with local request routing, failover, reusable prompts and skills, MCP configuration, session inspection, usage statistics, and remote backup.

Core Capabilities

  • Provider management: Keep multiple API providers and model configurations for each supported tool, then switch the active configuration without manually editing tool files.
  • Local routing: Route compatible requests through a local proxy with request and response conversion, streaming support, global outbound proxy settings, and per-provider options.
  • Failover: Arrange providers in a priority queue and use health checks and circuit breakers to move traffic away from unavailable routes.
  • Prompts and Skills: Manage prompts by target application; discover skills from repositories or skills.sh, import ZIP archives, install skills, and restore skill backups.
  • MCP servers: Add, import, and project MCP server definitions into each tool's native configuration format.
  • Sessions and usage: Search and inspect local sessions, remove sessions in batches, and review request, token, and cost data when the underlying tool or provider exposes it.
  • Synchronization: Back up application data and skills to user-configured WebDAV or S3-compatible storage, with optional automatic synchronization.
  • Tool maintenance: Detect installed CLI versions, install or update supported tools, and diagnose conflicting installations, including Windows and WSL environments.

Supported Tools

Tool Provider routing Prompts Skills MCP Sessions
Claude Code Yes Yes Yes Yes Yes
Claude Desktop Yes - - Yes -
Codex Yes Yes Yes Yes Yes
Pi Yes Yes Yes Yes Yes
Gemini CLI Yes Yes Yes Yes Yes
Grok Build Yes - Yes Yes Yes
OpenCode Yes - Yes Yes Yes
OpenClaw Yes - - - Yes
Hermes Yes - Yes Yes Yes

Availability varies because each tool has a different native configuration format. OpenClaw also has workspace, environment, tool-access, and agent-default views. Hermes includes memory management and a shortcut to its dashboard.

Download and Install

Download the appropriate package from the latest GitHub Release. Release assets cover Windows, macOS, and Linux; the exact installers and architectures are listed on each release page. Windows releases also provide portable archives when available.

StackFerry publishes signed updater artifacts for in-app updates. macOS packages currently use ad-hoc signing rather than Apple notarization, so the first launch may require approval in System Settings. Check the release notes for platform-specific instructions.

Getting Started

  1. Install the AI coding tools you intend to manage.
  2. Start StackFerry and choose a target tool from the application switcher.
  3. Add a provider or review the configuration imported as the default provider.
  4. Activate the provider to write its configuration to the target tool.
  5. Enable local routing only when the provider or protocol requires it. Configure the failover queue before enabling automatic failover.
  6. Configure Prompts, Skills, MCP, synchronization, and other optional features independently for their intended target applications.

StackFerry uses its own application identifier, data directory, database, deep-link scheme, synchronization namespace, and update artifacts. It does not overwrite CC Switch's application data.

Feature Notes

Skills

Skills can be discovered from configured Git repositories or searched through skills.sh. StackFerry validates and scans repositories before saving them, supports ZIP imports and backup restoration, and installs a selected skill into a selected target application. Master copies can live in StackFerry's data directory or in the open ~/.agents/skills location and are projected to compatible tools.

Sessions and Usage

The session manager covers Claude Code, Codex, Pi, Gemini CLI, Grok Build, OpenCode, OpenClaw, and Hermes. It supports search, provider and directory grouping, detail inspection, and batch deletion. Usage statistics combine available local session logs and local-routing records; token, cost, subscription, and provider-query data depend on the selected tool and upstream service.

Imports and Synchronization

The stackferry:// deep-link scheme can import supported provider, prompt, MCP, and skill data after an in-app confirmation. WebDAV and S3 synchronization require storage configured and trusted by the user. Review imported content and remote-storage settings before accepting them.

Development

Requirements

  • Node.js 20 or later
  • pnpm 10 (CI currently uses 10.12.3)
  • Rust 1.85 or later
  • Native Tauri 2 prerequisites for your operating system

The repository includes Tauri CLI 2 as a development dependency; a separate global Tauri installation is not required.

Setup

pnpm install
pnpm dev

pnpm dev starts the complete Tauri application and redirects supported tool homes into .stackferry-dev/, keeping development changes away from real user configurations. Use pnpm dev:renderer only when working on the browser renderer without the native backend.

Verification

pnpm typecheck
pnpm format:check
pnpm test:unit

cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check
cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml

Run pnpm format to format frontend source files and pnpm build:renderer to build only the renderer.

Build Commands

Command Output
pnpm build:fast Faster optimized executable using the fast-release Rust profile, without an installer
pnpm bundle:fast One platform-native installer: MSI, DMG, or AppImage
pnpm build Full production bundle used as the basis for release artifacts

Workspace settings place rust-analyzer output in src-tauri/target/analyzer so editor checks and CLI builds do not invalidate each other's caches.

Project Structure

src/                  React and TypeScript renderer
src-tauri/src/        Rust commands, services, database, routing, and adapters
scripts/              Development, fast-build, and release-manifest scripts
tests/                Frontend component and integration tests
.github/workflows/    CI and multi-platform release workflows

The renderer communicates with the Rust backend through Tauri commands and events. Rust owns native configuration access, SQLite persistence, proxy services, synchronization, session parsing, and system integration.

Release Process

  1. Set the same SemVer in package.json, src-tauri/tauri.conf.json, and src-tauri/Cargo.toml. Update the root package entry in src-tauri/Cargo.lock.

  2. Update RELEASE.md and validate the matching tag:

    pnpm release:validate v0.1.6
  3. Commit the version changes, create a vX.Y.Z tag, and push it.

  4. GitHub Actions validates the version, builds the platform matrix, gathers signed updater assets, generates latest.json, and publishes the GitHub Release.

The release workflow requires TAURI_SIGNING_PRIVATE_KEY as a repository secret. Never commit the signing key.

Data and Security

  • Provider credentials and application settings are stored locally in StackFerry-managed configuration and database files. Never commit real API keys or synchronized backups to source control.
  • Local routing and failover change where tool requests are sent. Review provider endpoints and routing settings before enabling them, especially for official accounts.
  • Third-party providers, imported deep links, skill repositories, MCP servers, scripts, and synchronization endpoints are outside StackFerry's trust boundary. Evaluate them before use.
  • Back up important native tool configurations before making large changes. Synchronization is not a substitute for an independently verified backup.

Foundation and License

StackFerry began from the CC Switch 3.19.0 codebase and retains its MIT license, copyright notice, attribution, and Git history. StackFerry is maintained as an independent project and does not automatically track CC Switch.

StackFerry is distributed under the MIT License. The original copyright notice remains:

Copyright (c) 2025 Jason Young

StackFerry is not affiliated with or endorsed by the CC Switch maintainers or by the vendors of the supported AI tools. Product names and trademarks belong to their respective owners.