Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

mocactl: show a turn's tool calls in a headless run (--show-tools)

Open
#419 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
72/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
cli

Research direction

Start in headless.ts, where plain-mode output currently writes only text frames, and review docs/demos/vm-multi-user-demo.md and its fix-list item. Add the run option so tool_use commands and failed tool_result frames are interleaved with text using sanitizeRemote; done means the demo no longer needs its jq filter.

Written by the indexing model from the issue text.

Description

Found on the VM demo's live run (#370, docs/demos/vm-multi-user-demo.md, fix list 8; reported in the #412 review).

A headless mocactl run prints only the assistant's text (headless.ts: only text frames are written in plain mode). To show an audience the commands an agent runs in its sandbox, the demo's research act needs --json and a jq filter:

mocactl run "$P" --json | jq -j '
  if .type == "tool_use" then "\n$ \(.args.command // .args)\n"
  elif .type == "tool_result" and .isError then "  (that command failed)\n"
  elif .type == "text" then .delta
  elif .type == "error" then "\nerror: \(.errorMessage // .stopReason)\n"
  else empty end'

Proposed: a --show-tools flag (or a -v) on mocactl run. It would print each tool_use frame's command and flag a tool_result with isError, interleaved with the text, using the same sanitizeRemote the text path uses. The demo's filter could then go.

Dominant language
TypeScript
Stars
4
Forks
9
Avg merge
9h 31m
Merged PRs (30d)
139

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rossoctl/moca

All issues in rossoctl/moca

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.