id = "cc-connect"
name = "cc-connect"
homepage = "https://github.com/chenhg5/cc-connect"
description = "A bridge from local AI coding agents to messaging platforms"
executables = ["cc-connect"]
[dotfiles]
paths = ["~/.cc-connect/config.toml"]
secret = []
[[dotfiles.secret_paths]]
file = "~/.cc-connect/config.toml"
format = "toml"
match = { key_path = [
"providers.*.api_key",
"openai.api_key",
"qwen.api_key",
"minimax.api_key",
"mimo.api_key",
"bridge.token",
"management.token",
"projects.*.platforms.*.options.token",
"projects.*.platforms.*.options.app_secret",
] }
[commands]
format = 1
label = "cc-connect"
description = "Send a message, attachment or synthesized voice message to an active cc-connect session. Starting the service, update and doctor are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["send"]
label = "Send to a session"
[[commands.subcommand.source]]
id = "help"
kind = "help"
url = "https://github.com/chenhg5/cc-connect/blob/main/cmd/cc-connect/send.go"
revision = "main 2026-10"
evidence = """
Usage: cc-connect send [options] <message>
-m, --message <text> Message to send (preferred over positional args)
--cwd <path> Start a new session in this working directory
--tts <text> Synthesize text and send it as a voice/audio message
--image <path> Send an image attachment (repeatable)
--file <path> Send a file attachment (repeatable)
--audio <path> Send an audio attachment (repeatable)
--video <path> Send a video attachment (repeatable)
--stdin Read message from stdin (best for long/special-char messages)
-p, --project <name> Target project (optional if only one project)
-s, --session <key> Target session key (optional, picks first active)
"""
[[commands.subcommand.field]]
id = "message"
label = "Message"
type = "string"
option = ["--message", "-m"]
sources = ["help"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
description = "Optional if only one project is configured."
type = "string"
option = ["--project", "-p"]
sources = ["help"]
[[commands.subcommand.field]]
id = "session"
label = "Session key"
description = "Optional; the first active session is used."
type = "string"
option = ["--session", "-s"]
sources = ["help"]
[[commands.subcommand.field]]
id = "image"
label = "Images"
type = "path"
option = ["--image"]
multiple = true
path = { kind = "file", role = "input" }
sources = ["help"]
[[commands.subcommand.field]]
id = "file"
label = "Files"
type = "path"
option = ["--file"]
multiple = true
path = { kind = "file", role = "input" }
sources = ["help"]
[[commands.subcommand.field]]
id = "tts"
label = "Voice message text"
type = "string"
option = ["--tts"]
sources = ["help"]
[[commands.subcommand.field]]
id = "cwd"
label = "Working directory for a new session"
type = "path"
option = ["--cwd"]
path = { kind = "directory", role = "input" }
sources = ["help"]
[[commands.subcommand.task]]
id = "text"
label = "Send a text message"
fields = ["message", "project"]
required = ["message"]
[[commands.subcommand.task]]
id = "attach"
label = "Send a file or image"
fields = ["file", "image", "message", "project"]
required = []
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["message", "image", "file", "tts"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["project", "session", "cwd"]