project-router

Route messages across multiple projects via a single IM platform connection.

2|Updated Mar 30, 2026
One-click install
npx skills add https://github.com/liuyu520/cc-connect-fork --skill project-router
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-router
Source: https://github.com/liuyu520/cc-connect-fork/tree/main/.claude/skills/project-router
Command: npx skills add https://github.com/liuyu520/cc-connect-fork --skill project-router

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

ProjectRouter enables multiple projects in config.toml to share the same IM platform credentials (e.g., one Feishu bot serving three projects). It maintains a single platform connection and routes incoming messages to the correct Engine based on per-session bindings.

Core Features & Use Cases

  • Shared platform routing across multiple projects using a single connection
  • Per-session binding and project switching via the /project command
  • Thread-isolation support with optional BaseSessionKeyer
  • Binding persistence to survive restarts and support fallback routing
  • Button-based selection UI when supported by the platform, with a text fallback
  • Clear architecture references and test coverage to ensure reliability
  • Extensible for adding new subcommands and i18n strings

Quick Start

Configure multiple projects in your config.toml, initialize the routers for shared platforms, start all engines, then use the /project command to bind and switch between projects.

Frequently Asked Questions about project-router

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I route multiple projects over a single IM platform connection?

To route multiple projects over a single IM platform connection, configure your projects in a config.toml file and initialize the routers to share the platform credentials. This setup routes incoming messages to the correct Engine based on per-session bindings.

How does per-session binding work for multi-project routing?

Per-session binding for multi-project routing works by assigning a specific project to each user session via the /project command. This ensures incoming messages are routed to the correct Engine, with binding persistence surviving restarts to support fallback routing.

Can I use one Feishu bot to serve multiple projects simultaneously?

Yes, you can use one Feishu bot to serve multiple projects simultaneously by sharing the same IM platform credentials. ProjectRouter maintains a single platform connection and routes incoming messages to the correct Engine based on per-session bindings.

Does multi-project routing support thread-isolation and button-based selection?

Multi-project routing supports thread-isolation using an optional BaseSessionKeyer and offers button-based selection UI when supported by the platform. If buttons are unsupported, it automatically falls back to text-based project selection.

What is the best way to switch between projects on a shared bot connection?

The best way to switch between projects on a shared bot connection is using the /project command. This workflow allows users to bind and switch between projects dynamically, with router-level binding persistence ensuring configurations survive restarts.

Why do I need to configure multiple projects in config.toml for routing?

You need to configure multiple projects in config.toml for routing to define the shared platform credentials and initialize the routers. Starting all engines after this setup enables the router to correctly map incoming messages to the appropriate Engine.