@mertyalti/agentia-chatter
v0.1.0
Published
oclif plugin that reads and writes Chatter on a Salesforce record. With no id, list and post use the active Copado user story.
Maintainers
Readme
@mertyalti/agentia-chatter
oclif plugin that adds chatter commands to the agentia host. It reads and writes Salesforce Chatter on any record. With no id, list and post use the active user story from agentia cicd work set.
Independent personal project by mert yaltı. Not developed, endorsed, supported or warranted by Copado. Copado and Agentia are trademarks of Copado.
Usage
$ npm install -g @mertyalti/agentia-chatter
$ agentia COMMAND
running command...
$ agentia (--version)
@mertyalti/agentia-chatter/0.1.0 darwin-arm64 node-v25.9.0
$ agentia --help [COMMAND]
USAGE
$ agentia COMMAND
...Requires Node.js 18 or newer, the Salesforce CLI (sf), and Agentia CLI (@copado/agentia-cli / Agentia Headless) >= 1.0.0. This package has no npm bin; the host command is agentia. Proprietary software: see LICENSE.md.
list and post take a Salesforce record Id. With no id, they use the active user story from agentia cicd work get. A user story name, such as US-0000001, still resolves through that command. show and reply take the feed element id printed in parentheses on a list bullet. Chatter is stored on the Copado org that owns the record. With CICD auth connected (agentia auth get --cicd), that org is the Salesforce username from agentia cicd user get. Pass --target-org to use a different org. The plugin does not print the Salesforce access token.
Install
Install the plugin into a host that already provides agentia:
$ agentia plugins install @mertyalti/agentia-chatter
$ agentia chatter --helpSibling checkout (local development)
$ npm ci
$ npm run build
$ agentia plugins link .
$ agentia chatter --helpnpm run build compiles this plugin. It uses the published @copado/agentia-plugin-sdk. Without linking, the local oclif entry (not an npm bin) is:
$ node bin/run.js chatter --helpRead and write
$ agentia chatter list
$ agentia chatter list a01xx0000000001AAA --json
$ agentia chatter search "code coverage"
$ agentia chatter show 0D5xx0000000001AAA
$ agentia chatter post "Ready for review @{Ada Lovelace}"
$ agentia chatter reply 0D5xx0000000001AAA "Coverage is above 75" --comment 0D7xx0000000001AAA
$ agentia chatter edit 0D5xx0000000001AAA "Updated text"
$ agentia chatter like 0D5xx0000000001AAA
$ agentia chatter delete 0D7xx0000000001AAA --force
$ agentia chatter dm list
$ agentia chatter dm send "Ada Lovelace" "Can we review this story?"The human list prints each post and comment id and indents threaded replies. A Salesforce record id is labeled with its name:
• 2026-07-29 12:31 Fran Núñez Sánchez (0D5xx0000000001AAA)
Ready for review.
↳ 2026-07-29 13:02 Ada Lovelace (0D7xx0000000001AAA)
Coverage is above 75
↳ 2026-07-29 13:10 Fran Núñez Sánchez (0D7xx0000000002AAA)
Thanks.@{005...}, @{Full Name}, and a single-word @Name become Chatter mentions. One match is used. Several matches stop the command and print the names. An email address stays plain text. A message of - reads stdin. --file attaches a file up to 25 MB on a new post or reply. Edit cannot add a file later. Delete requires --force.
MCP and skills
$ agentia chatter setup mcp
$ agentia chatter setup skillsThat writes an agentia-chatter stdio entry:
{
"command": "agentia",
"args": ["chatter", "mcp", "start"],
"type": "stdio",
"env": { "AGENTIA_PROJECT_ROOT": "${workspaceFolder}" }
}Start the server: agentia chatter mcp start. MCP tools: chatter_list, chatter_show, chatter_search, chatter_post, chatter_reply, chatter_edit, chatter_delete, chatter_like, chatter_dm_list, chatter_dm_send. chatter_delete requires confirm: true. Prefer MCP when connected; otherwise agentia chatter … --json.
License
Copyright (c) mert yaltı. All rights reserved. See LICENSE.md. Permission is granted to install and use this software with Agentia Headless; redistribution, sublicensing, and modification require prior written permission.
Commands
agentia chatter delete IDagentia chatter dm listagentia chatter dm send RECIPIENT [MESSAGE]agentia chatter edit ID [MESSAGE]agentia chatter like FEEDELEMENTIDagentia chatter list [ID]agentia chatter mcp startagentia chatter post [MESSAGE] [ID]agentia chatter reply FEEDELEMENTID [MESSAGE]agentia chatter search TEXT [ID]agentia chatter setup mcpagentia chatter setup skillsagentia chatter show FEEDELEMENTID
agentia chatter delete ID
Delete a Chatter post or reply
USAGE
$ agentia chatter delete ID [--json] [--force] [--target-org <value>]
ARGUMENTS
ID Chatter post id (0D5) or comment id (0D7)
FLAGS
--force Confirm deletion of this Chatter post or reply
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Delete a Chatter post or reply
EXAMPLES
$ agentia chatter delete 0D5xx0000000001AAA --forceagentia chatter dm list
List Chatter direct messages
USAGE
$ agentia chatter dm list [--json] [--limit <value>] [--target-org <value>]
FLAGS
--limit=<value> [default: 20] Maximum number of direct messages to return
--target-org=<value> Salesforce org alias or username for the Copado org
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List Chatter direct messages
EXAMPLES
$ agentia chatter dm listagentia chatter dm send RECIPIENT [MESSAGE]
Send a Chatter direct message
USAGE
$ agentia chatter dm send RECIPIENT [MESSAGE] [--json] [--subject <value>] [--target-org <value>]
ARGUMENTS
RECIPIENT User id (005) or name to message
[MESSAGE] Direct message text. Use - to read stdin
FLAGS
--subject=<value> Subject of the direct message
--target-org=<value> Salesforce org alias or username for the Copado org
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Send a Chatter direct message
EXAMPLES
$ agentia chatter dm send "Himani Sharma" "Can we review this story?"agentia chatter edit ID [MESSAGE]
Edit a Chatter post or reply
USAGE
$ agentia chatter edit ID [MESSAGE] [--json] [--target-org <value>]
ARGUMENTS
ID Chatter post id (0D5) or comment id (0D7)
[MESSAGE] Replacement text. Use - to read stdin
FLAGS
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Edit a Chatter post or reply
EXAMPLES
$ agentia chatter edit 0D5xx0000000001AAA "Updated text"agentia chatter like FEEDELEMENTID
Like a Chatter post
USAGE
$ agentia chatter like FEEDELEMENTID [--json] [--target-org <value>]
ARGUMENTS
FEEDELEMENTID Chatter post id (0D5)
FLAGS
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Like a Chatter post
EXAMPLES
$ agentia chatter like 0D5xx0000000001AAAagentia chatter list [ID]
List Chatter conversations on a Salesforce record
USAGE
$ agentia chatter list [ID] [--json] [--include-tracked-changes] [--limit <value>] [--target-org <value>]
ARGUMENTS
[ID] Salesforce record Id. A user story name also works. Defaults to the active user story from `work set`
FLAGS
--include-tracked-changes Include field-history TrackedChange feed items
--limit=<value> [default: 20] Maximum number of conversations to return
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List Chatter conversations on a Salesforce record
EXAMPLES
$ agentia chatter list
$ agentia chatter list a01xx0000000001AAA
$ agentia chatter list a01xx0000000001AAA --jsonagentia chatter mcp start
Start the local Agentia Chatter MCP server over stdio
USAGE
$ agentia chatter mcp start
DESCRIPTION
Start the local Agentia Chatter MCP server over stdio
EXAMPLES
$ agentia chatter mcp start
$ agentia chatter mcp start # long-running stdio MCP server for Cursor and other clientsagentia chatter post [MESSAGE] [ID]
Post a Chatter message on a Salesforce record
USAGE
$ agentia chatter post [MESSAGE] [ID] [--json] [--file <value>] [--target-org <value>]
ARGUMENTS
[MESSAGE] Text of the new Chatter post. Use - to read stdin
[ID] Salesforce record Id. A user story name also works. Defaults to the active user story from `work set`
FLAGS
--file=<value> File to attach. Maximum 25 MB
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Post a Chatter message on a Salesforce record
EXAMPLES
$ agentia chatter post "Ready for review"
$ agentia chatter post "Ready for review" a01xx0000000001AAAagentia chatter reply FEEDELEMENTID [MESSAGE]
Reply to a Chatter post
USAGE
$ agentia chatter reply FEEDELEMENTID [MESSAGE] [--json] [--comment <value>] [--file <value>] [--target-org
<value>]
ARGUMENTS
FEEDELEMENTID Chatter feed element Id from `chatter list`
[MESSAGE] Text of the reply. Use - to read stdin
FLAGS
--comment=<value> Comment Id to reply under, as a threaded reply
--file=<value> File to attach. Maximum 25 MB
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Reply to a Chatter post
EXAMPLES
$ agentia chatter reply 0D5xx0000000001AAA "Coverage is above 75"
$ agentia chatter reply 0D5xx0000000001AAA "Thanks" --comment 0D7xx0000000001AAAagentia chatter search TEXT [ID]
Search Chatter on a Salesforce record
USAGE
$ agentia chatter search TEXT [ID] [--json] [--target-org <value>]
ARGUMENTS
TEXT Words to find in posts and replies. At least 2 characters
[ID] Salesforce record Id. Defaults to the active user story from `work set`
FLAGS
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Search Chatter on a Salesforce record
EXAMPLES
$ agentia chatter search "code coverage"agentia chatter setup mcp
Configure Cursor to run the Agentia Chatter MCP server (plugin-local stdio; not host MCP injection)
USAGE
$ agentia chatter setup mcp [--json] [--scope local|global]
FLAGS
--scope=<option> [default: local] Write project .cursor/mcp.json (local) or ~/.cursor/mcp.json (global)
<options: local|global>
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Configure Cursor to run the Agentia Chatter MCP server (plugin-local stdio; not host MCP injection)
EXAMPLES
$ agentia chatter setup mcp
$ agentia chatter setup mcp --scope local
$ agentia chatter setup mcp --scope global --jsonagentia chatter setup skills
Install the Agentia Chatter agent skill into this project
USAGE
$ agentia chatter setup skills [--json] [--force] [--target agents|cursor|claude...]
FLAGS
--force Replace skill files that are not managed by Agentia Chatter
--target=<option>... [default: agents] Skill root to install into
<options: agents|cursor|claude>
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Install the Agentia Chatter agent skill into this project
EXAMPLES
$ agentia chatter setup skills
$ agentia chatter setup skills --target cursor --target claudeagentia chatter show FEEDELEMENTID
Show one Chatter conversation, including later comment pages
USAGE
$ agentia chatter show FEEDELEMENTID [--json] [--target-org <value>]
ARGUMENTS
FEEDELEMENTID Chatter feed element Id
FLAGS
--target-org=<value> Salesforce org alias or username for the Copado org that owns the record
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Show one Chatter conversation, including later comment pages
EXAMPLES
$ agentia chatter show 0D5xx0000000001AAA
$ agentia chatter show 0D5xx0000000001AAA --json