Binary:
co-assistantΒ· Version: 1.0.0
Every command inherits the following flags:
| Flag | Description |
|---|---|
-V, --version |
Print the CLI version and exit |
-h, --help |
Show help for any command |
co-assistant --version
co-assistant --help
co-assistant <command> --helpStart the Co-Assistant Telegram bot. Creates an application instance and boots all subsystems (AI, Telegram, plugins).
co-assistant start [options]
| Flag | Description |
|---|---|
-v, --verbose |
Enable verbose/debug logging |
# Start the bot
co-assistant start
# Start with debug output
co-assistant start --verbose- Requires a valid
.envfile with at leastTELEGRAM_BOT_TOKENconfigured. Runco-assistant setupfirst if you haven't already. - The process runs in the foreground. Use Ctrl+C to stop.
Run the interactive setup wizard. Walks through Telegram, AI, and GitHub configuration, writing values to .env, then optionally configures plugins.
co-assistant setup [options]
| Flag | Description |
|---|---|
--plugin <id> |
Skip the global wizard and configure a single plugin only |
# Run the full setup wizard
co-assistant setupπ§ Co-Assistant Setup Wizard
ββββββββββββββββββββββββββββ
Step 1: Telegram Bot Configuration
Telegram Bot Token (from @BotFather): ********
Your Telegram User ID: 123456789
Step 2: AI Configuration
Default AI Model (gpt-4.1): gpt-4.1
Step 3: Optional - GitHub Token
GitHub Token (for Copilot SDK, optional): ********
β Configuration saved to .env
Would you like to configure plugins now? (y/N)
# Configure a single plugin directly
co-assistant setup --plugin githubConfiguring plugin: github
Configuring github...
GITHUB_TOKEN (GitHub personal access token): ********
Enable this plugin? (y/N) y
β github configured and enabled
- The global wizard walks through four steps: Telegram bot token, AI model, GitHub token, and plugin configuration.
- Environment values are saved to
.env. Plugin settings are saved toconfig.json. - If
--plugin <id>references a plugin that doesn't exist, the command exits with an error and lists available plugins. - Press Ctrl+C at any time to cancel setup gracefully.
Manage plugins β list, enable, disable, inspect, and scaffold new plugins.
co-assistant plugin <subcommand> [args]
plugin listplugin availableplugin installplugin enable <id>plugin disable <id>plugin info <id>plugin create <id>
List all discovered plugins with their status and credential information.
co-assistant plugin list
co-assistant plugin listπ Discovered Plugins:
github (v1.0.0) - GitHub Plugin
Status: β
Enabled | Credentials: β configured
linear (v1.0.0) - Linear Plugin
Status: β Disabled | Credentials: β missing (LINEAR_API_KEY)
- Plugins are auto-discovered from the
plugins/directory. - Credential status shows whether all required credentials are configured in
config.json.
List first-party plugins bundled with the package and show whether each is already installed in your local plugins/ directory.
co-assistant plugin available
co-assistant plugin availableπ¦ Available First-Party Plugins:
gmail (v1.0.0) β Gmail Plugin
Send, read, and search Gmail messages via the Gmail API
β
Installed
google-calendar (v1.0.0) β Google Calendar Plugin
View, create, and manage Google Calendar events
β¬οΈ Not installed
Install with: co-assistant plugin install <id>
Install all: co-assistant plugin install --all
- Bundled plugins are resolved from the package's own
plugins/directory, regardless of how Co-Assistant was installed. - "Installed" means the plugin exists in your working directory's
plugins/folder.
Copy a bundled first-party plugin into your local plugins/ directory.
co-assistant plugin install [id] [--all] [--force]
| Argument / Option | Description |
|---|---|
[id] |
Plugin ID to install (omit when using --all) |
--all |
Install all available first-party plugins |
--force |
Overwrite plugins that are already installed |
# Install a single plugin
co-assistant plugin install gmail β
gmail β installed to plugins/gmail/
β 1 installed, 0 skipped
Next steps:
co-assistant plugin configure <id> # Set up credentials
co-assistant plugin enable <id> # Enable the plugin
# Install all bundled plugins
co-assistant plugin install --all# Force-overwrite after a package update
co-assistant plugin install gmail --force- If a plugin already exists locally and
--forceis not set, it is skipped. - After installing, you still need to
enableandconfigurethe plugin before it is active.
Enable a plugin by ID.
co-assistant plugin enable <id>
| Argument | Description |
|---|---|
<id> |
Plugin ID to enable |
co-assistant plugin enable githubβ Plugin 'github' enabled
# If already enabled
co-assistant plugin enable githubβΉ Plugin 'github' is already enabled.
- The plugin must exist in the
plugins/directory. If not found, the command exits with an error suggestingplugin list.
Disable a plugin by ID.
co-assistant plugin disable <id>
| Argument | Description |
|---|---|
<id> |
Plugin ID to disable |
co-assistant plugin disable githubβ Plugin 'github' disabled
# If already disabled
co-assistant plugin disable githubβΉ Plugin 'github' is already disabled.
Show detailed information about a plugin, including version, author, status, and credential configuration.
co-assistant plugin info <id>
| Argument | Description |
|---|---|
<id> |
Plugin ID to inspect |
co-assistant plugin info githubπ Plugin: GitHub Plugin
ββββββββββββββββββββββ
ID: github
Version: 1.0.0
Description: GitHub integration plugin
Author: co-assistant
Status: Enabled
Required Credentials:
GITHUB_TOKEN - GitHub personal access token [configured]
Scaffold a new plugin from a template. Creates a ready-to-edit plugin directory under plugins/.
co-assistant plugin create <id>
| Argument | Description |
|---|---|
<id> |
ID for the new plugin (must be kebab-case) |
co-assistant plugin create my-pluginβ Plugin 'my-plugin' scaffolded at plugins/my-plugin/
| File | Purpose |
|---|---|
plugin.json |
Plugin manifest (id, name, version, credentials) |
index.ts |
Plugin entry point with lifecycle hooks |
tools.ts |
Tool definitions exposed by the plugin |
README.md |
Plugin documentation template |
- The plugin ID must be kebab-case (lowercase letters, numbers, and hyphens only). Invalid IDs are rejected.
- The command exits with an error if a directory with the same name already exists under
plugins/. - The generated
plugin.jsonname is derived from the ID (e.g.,my-pluginβ "My Plugin").
Manage AI model selection and configuration.
co-assistant model <subcommand> [args]
List all available AI models in a formatted table. The currently selected model is marked with *.
co-assistant model list
co-assistant model listAvailable Models:
ββββββββββββββββββββ¬βββββββββββ¬βββββββββββββββββββββββββββββββ
β ID β Provider β Description β
ββββββββββββββββββββΌβββββββββββΌβββββββββββββββββββββββββββββββ€
β * gpt-4.1 β openai β Latest GPT-4.1 model β
β gpt-4.1-mini β openai β Smaller, faster GPT-4.1 β
β claude-sonnet β claude β Claude Sonnet model β
ββββββββββββββββββββ΄βββββββββββ΄βββββββββββββββββββββββββββββββ
* = currently selected
Print the currently configured AI model ID.
co-assistant model get
co-assistant model getCurrent model: gpt-4.1
Set the active AI model. The selection is persisted to the database.
co-assistant model set <modelId>
| Argument | Description |
|---|---|
<modelId> |
Model identifier to activate |
co-assistant model set gpt-4.1-miniβ Model set to: gpt-4.1-mini
# Setting an unknown model (still allowed, but warns)
co-assistant model set custom-modelβ Warning: 'custom-model' is not in the known models list
β Model set to: custom-model
- Use
model listto see valid model IDs. - Unknown model IDs produce a warning but are still accepted, allowing use of newly released models before the known-models list is updated.
Show the current status of the bot and all plugins.
co-assistant status
co-assistant statusFetching status...
- This command is currently a placeholder and will display full runtime status information in a future release.