taskersctl is the local control CLI for Taskers. It is the shortest path for:
- inspecting the current workspace state
- creating notifications and agent status
- driving embedded browsers
- identifying the current runtime target
- reading terminal debug state
When you run taskersctl inside a Taskers terminal, it usually infers the current target from the exported TASKERS_* environment.
That means commands like these usually work without extra flags from an embedded terminal:
taskersctl identify
taskersctl notify --title "Hello" --body "Current pane"
taskersctl browser snapshot
taskersctl debug terminal read-text --tail-lines 40When you run taskersctl outside Taskers, pass explicit ids such as --workspace, --pane, or --surface.
To discover ids:
taskersctl query tree
taskersctl query statusTop-level command groups:
query: inspect workspaces, agents, notifications, and the full treenotify: create a notification directlyagent: manage workspace status, progress, logs, notifications, flash, and unread navigationagent-hook: hook-oriented lifecycle commands for external toolsbrowser: inspect and automate embedded browser surfacesidentify: print the current resolved workspace, pane, and surface contextdebug: inspect terminal focus, text, and render statsworkspace,pane,surface: create and manipulate Taskers structure directly
taskersctl identify
taskersctl query status
taskersctl query notificationsUse this first when you want to understand where a script or agent is currently operating.
taskersctl notify --title "Build Complete" --subtitle "Project X" --body "All tests passed"
taskersctl agent focus-unreadFor more lifecycle detail, see Notifications and attention.
taskersctl agent status set --text "Running sync"
taskersctl agent progress set --value 650 --label "65%"
taskersctl agent log append --source codex --message "Applied patch"
taskersctl agent notify create --title "Codex" --message "Need review"Clear paths:
taskersctl agent status clear
taskersctl agent progress clear
taskersctl agent log clear
taskersctl agent notify clearOpen a browser in a known pane:
taskersctl surface new --workspace <workspace-id> --pane <pane-id> --kind browser --url https://duckduckgo.com/Inspect the active browser from a Taskers terminal:
taskersctl browser snapshot
taskersctl browser get title
taskersctl browser wait --text DuckDuckGoInteract with DOM targets:
taskersctl browser click --selector 'a[href]'
taskersctl browser click --ref @e1
taskersctl browser screenshotUse --selector when you already know a CSS target. Use --ref after a snapshot when you want to act on the exact node Taskers returned.
taskersctl debug terminal is-focused
taskersctl debug terminal read-text --tail-lines 40
taskersctl debug terminal render-statsThis is useful for agent integrations, test harnesses, and debugging embedded terminal behavior.
Create a workspace:
taskersctl workspace new --label "Workspace 2"Split a pane in a specific workspace:
taskersctl pane split --workspace <workspace-id> --pane <pane-id> --axis vertical --kind terminalCreate a new browser surface in a pane:
taskersctl surface new --workspace <workspace-id> --pane <pane-id> --kind browser --url https://duckduckgo.com/If your tool already emits lifecycle events, use agent-hook instead of rebuilding the state model yourself:
taskersctl agent-hook waiting --title "Codex" --message "Need review"
taskersctl agent-hook stop --title "Codex" --message "Turn complete"
taskersctl agent-hook stop --message "Finished"Use notification for contextual agent output that should update the live pane/workspace summary without finalizing the run. Use stop for the final successful completion edge; non-zero shell exits still surface as error stops automatically. This is the best fit for wrappers around coding agents, CI helpers, and long-running scripts.
- Use
--socketif you need to target a non-default Taskers control socket. browsercommands are strict about selectors and refs. Resolve a target withsnapshotfirst when in doubt.- The browser automation surface is intentionally broader than the rest of the CLI. Start with
snapshot,get,wait, andclick, then expand only as needed.