agsmith
v0.1.2
Published
Smith CLI — your extensible agent toolkit
Readme
Agent Smith
Smith CLI — your extensible agent toolkit.
Installation
npm install
npm run build
npm linkRequires Node.js >= 18.
Configuration
All config and credentials live in ~/.agent-smith/.
~/.agent-smith/
config.json # Slack + OpenClaw settings
credentials/
gmail-client.json # Gmail OAuth client secret
gmail-user-readonly-token.json # Gmail read-only token
gmail-user-modify-token.json # Gmail modify tokenCommands
agsmith config
agsmith config show Show current config with secrets masked
agsmith config path Print the path to the config fileagsmith slack
Setup
agsmith slack set api-key <value> Set the Slack bot/user OAuth token (xoxb-... or xoxp-...)
agsmith slack set main-user-id <value> Set the primary Slack user ID (e.g. U0123456789)Commands
agsmith slack channel list List all channels in the workspace
--include-archived Include archived channels
--private-only Show only private channels
--public-only Show only public channels
--wrap Wrap cell content in table output
--truncate Truncate cell content to column widths
agsmith slack channel create <name> Create a channel in the workspace
--private Create as a private channelagsmith gmail
Setup
agsmith gmail import-credentials <path> Copy OAuth client secret to ~/.agent-smith/credentials/gmail-client.json
agsmith gmail auth Run the OAuth flow (read-only, default)
--readonly Request read-only access (default)
--modify Request modify access (required for label operations)Tokens are saved automatically to ~/.agent-smith/credentials/.
Commands
agsmith gmail list List Gmail messages
--filter <filter> Gmail search query (e.g. "is:unread")
--limit <n> Max messages to fetch (default: 20)
--offset <n> Number of messages to skip (default: 0)
--json Output JSON
--wrap Wrap cell content in table output
--truncate Truncate cell content to column widths
agsmith gmail message <message-id> Show a single message by ID
--json Output JSON
--pdf [output-path] Render the message to a PDF file
agsmith gmail labels List all Gmail labels
--json Output JSON
--wrap Wrap cell content in table output
--truncate Truncate cell content to column widths
agsmith gmail update-labels [message-ids...] Add or remove labels on messages
--filter <filter> Gmail search query to select messages
--add <label-id> Label ID to add (repeatable)
--remove <label-id> Label ID to remove (repeatable)
--add-name <label-name> Label name to add (repeatable)
--remove-name <label-name> Label name to remove (repeatable)
--json Output JSON
agsmith gmail attachment list <message-id> List attachments on a message
--json Output JSON
agsmith gmail attachment download <message-id> <attachment-id> Download an attachment
--output-dir <dir> Directory to write the file into (default: .)
--filename <name> Override the output filename
--json Output JSONagsmith openclaw
Setup
agsmith openclaw set config-dir <path> Set the path to the OpenClaw config directory
agsmith openclaw set default-model <model> Set the default model for new agentsCommands
agsmith openclaw agent create <agent-name>Creates an OpenClaw agent, a matching Slack channel, and binds them together. If the channel or agent already exists, the existing resources are reused.
agsmith iterm
Requires macOS with iTerm2 installed.
agsmith iterm list List all iTerm2 windows, tabs, and sessions
--json Output JSON
agsmith iterm new <session> [cwd] [command] [args...]
Create a new tab, optionally cd and run a command
agsmith iterm run <session> <command> [args...]
Run a command in a named session (sends Ctrl+C first)