Skip to main content

utcp_cli 0.2.0 copy "utcp_cli: ^0.2.0" to clipboard
utcp_cli: ^0.2.0 copied to clipboard

CLI transport for the Dart UTCP client: let LLM agents discover and call tools that run as local command-line programs.

0.2.0 #

  • An empty commands list, a blank command or an empty working_dir parses and round-trips, as in the reference SDKs; discovery and calls with it fail with a UtcpException.
  • A command that ends a bash script (exit, exec, set -e) no longer fails the call: the outputs selected before it and its own output are returned, within maxOutputBytes, as the spec returns a failing script's output. A script syntax error returns the shell's error text.
  • With set -e, a failure bash exempts from it (a && b) no longer ends the script, and set -C no longer stops later commands.
  • Discovery accepts a bare list of tools, a single tool, or single tools on separate lines, and skips a tool that does not parse (logged on utcp.cli) instead of failing the whole manual.
  • Discovery reads stdout unless it is blank, as tool calls do, so a discovery command that exits non-zero after printing its manual still registers.

0.1.1 #

  • Docs: package cross-links, badges and platform notes.

0.1.0 #

  • Initial release: cli call template and protocol with multi-step commands, injection-safe argument placeholders, $CMD_<i>_OUTPUT references, env_vars, inherit_env_vars and working_dir.
  • Discovery from command output, JSON output decoding, and process-tree cleanup on timeout, cancellation and close().
  • Bash placeholders in arithmetic contexts ($(( )), (( )), [[ -gt ]], let, ${...}, array subscripts, declare -i) are rejected, since bash would run code embedded in the value.
  • The bash scanner models heredocs (<<, <<-, quoted and unquoted delimiters), case statements, { } groups and function bodies, and skips the wrapper words builtin, command, time, exec, nohup, env and a leading \, closing let/declare -i bypasses that the earlier first-word check missed. A placeholder in a quoted-delimiter heredoc body, or in a case inside a command substitution (unparseable on bash 3.2), is rejected.
  • An argument value with a substitution ($(, ${, $name, a backtick) inside [...] is rejected (naming the argument), as defense in depth against code in an array subscript. The joined values of one command are checked too, so a payload cannot be split across placeholders; text such as See [docs](https://x) and run `make` and JSON arrays such as [1,2] pass.
  • The bash scanner treats << in arithmetic as a shift instead of a heredoc, and rejects a placeholder after a heredoc inside a command substitution whose end bash versions read differently (EOF)), so neither can leave a later value unquoted.
  • More contexts that evaluate a value as a number are rejected: [...]= in name=(...), [[ -v ]] and test -v, an assignment to a variable declared -i, wrapper options (command -p let, time -p let) and a quoted command name ('let').
  • An escaped blank before # (x\ #) no longer starts a comment in the bash scanner.
  • A command that installs a trap '…' EXIT no longer fails the call; the trap's output after the end marker is discarded.
  • Placeholders inside "$(...)" and backticks stay one word and are never glob-expanded.
  • A bash command that ends the script (exit, exec, set -e), or a script syntax error, fails the call instead of returning empty output.
  • CliCommunicationProtocol(maxOutputBytes: ...) caps script output (10 MiB by default); a script over the limit is killed and the call fails.
  • An argument containing a NUL character, and a blank command, are rejected.
  • The README documents keeping secrets out of command and marks Windows support experimental.
0
likes
160
points
643
downloads

Documentation

API reference

Publisher

verified publisherleehack.com

Weekly Downloads

CLI transport for the Dart UTCP client: let LLM agents discover and call tools that run as local command-line programs.

Repository (GitHub)
View/report issues

Topics

#utcp #cli #llm #agents #tool-calling

License

MPL-2.0 (license)

Dependencies

logging, utcp

More

Packages that depend on utcp_cli