Releases: erickcxc/dograh-ctl
Release list
v0.3.1: per-node prompts, end-call fix
Patch: per-node prompts and the end-call fix found on a live campaign call.
Added
agents set-prompt --node agentNode|startCall|globalNode|endCall(repeatable; default agentNode) andnode_typeon theagents_set_promptMCP tool, so persona (globalNode), greeting (startCall), and goodbye (endCall) prompts can be set without graph surgery.
Fixed
- Goodbye loop at the end of calls: the skill now carries the prompt contract (agentNode says one goodbye then calls
end_call; endCall is one line), verified live (end_call transition executed, call completed in 3 s).
v0.3.0: agent-first
Agent-first release: Claude Code (or any MCP client) can now create, publish, number, test, and call a voice agent end to end through dograh-ctl.
Added
serve: full lifecycle tools (agents_create,agents_set_prompt,agents_set_model,agents_validate,agents_publish,agents_chat,numbers_add,campaigns_list/create/start/pause,telephony_configs,tools_list,keys_list) withnexthints and a recipe in the server instructions.keys_create/revokeandnumbers_removestay CLI-only.- Claude Code plugin in the repo:
.claude-plugin/plugin.json+marketplace.json, plugin-root.mcp.json(registersdograh-opsviauvx dograh-ctl serve), thedograh-ctlskill (lifecycle recipe), and the/dograh-ctl-setupcommand. dograh-ctl mcp-config: prints theclaude mcp addline and JSON for other MCP clients.AGENTS.mdfor agents using or working on the repo.campaigns watch <id>: live dashboard (progress bar + calls table, numbers masked to the last 4 digits).
Install for Claude Code: claude plugin marketplace add erickcxc/dograh-ctl then claude plugin install dograh-ctl. CLI: uv tool install dograh-ctl. PyPI: https://pypi.org/project/dograh-ctl/0.3.0/
v0.2.1: first PyPI release
First PyPI release: pip install dograh-ctl / uv tool install dograh-ctl.
Added
- PyPI publishing via GitHub Actions Trusted Publishing (
.github/workflows/release.yml, runs on version tags). - CHANGELOG.
Changed
- README presents the finished command surface (32 commands, 9 groups) instead of a roadmap.
pyproject.toml:mcp>=2.0(the server uses the 2.0MCPServerAPI), project URLs, authors, keywords, classifiers.- Test fixtures use a placeholder phone number.
- LICENSE names the copyright holder in full.
- Version test asserts
__version__matchespyproject.toml(works on Python 3.10+).
Install: uv tool install dograh-ctl or pip install dograh-ctl. PyPI: https://pypi.org/project/dograh-ctl/0.2.1/
v0.2.0: the full command map
dograh-ctl v0.2.0: the full command map
The missing command line for self-hosted Dograh voice agents is complete: 32 commands across agents, runs, numbers, models, campaigns, telephony, tools, keys, and an MCP operations server.
New
- agents:
get,set-model,publish,validate - runs:
trigger(place a call, resolves the run id),transcript,recording,chat(text session, no telephony) - numbers:
add(register an owned number),remove - models:
show,set(read-modify-write, server re-merges masked secrets) - campaigns:
list,create(CSV upload),start,pause,status - telephony:
configs,providers - tools:
list - keys:
list,create(prefix only unless--reveal),revoke serve: MCP server over stdio exposing the operations verbs (Dograh's own MCP handles authoring)
Production hardening
- Every command supports
--json; every failure is one line with an exit code (2 config, 1 remote); no tracebacks --yesconfirmation on verbs that place calls or cost money- Mocked-HTTP test per command; fixtures pinned to the Dograh source at
dograh-hq/dograh@b32187d8 - CI on Python 3.10 and 3.12;
uv tool install git+https://github.com/erickcxc/dograh-ctl
Notes
- Requires Python 3.10+ (the
mcpdependency) numbers buy/numbers releasefrom the v1 roadmap becamenumbers add/numbers remove: Dograh registers numbers, it does not buy or release them at the carrier- Verification status per command is in the README (live-verified vs source-verified)
