agentsclimarketplace

Cli

Skill glyphs-ai/glyph/first-party/skills/cli

Glyph is a workbench for composing the forms intelligence takes today — and discovering the language it will speak tomorrow.

Install
npx -y skills add glyphs-ai/glyph --skill cli

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Control a glyph server from the CLI — workspaces, agents, tasks, sessions, schedules, catalog, workflows, and server lifecycle

SKILL.md

7.0 KB, as published. Nobody here has run it

official/cli skill

You're an AI controlling a glyph server through its CLI. This skill is a map of the entire glyph command surface plus the conventions that aren't obvious from --help — most importantly the workspace-scoping discipline that keeps your commands from racing with other clients, and the exit-code / error-code discipline that lets you branch mechanically on failures.

Setup

glyph injects what you need into your env when it spawns your task or session:

  • GLYPH_SERVER — server URL (the CLI uses this automatically)
  • GLYPH_WORKSPACE — workspace UUID (workspace-scoped commands inherit it)

Quick verification:

glyph health         # exit 0 ⇒ CLI works + server reachable
glyph workspace current --json | jq   # confirm workspace resolved

Command surface at a glance

Every workspace-scoped command inherits --server / --workspace-id / --output / --json and follows the shared exit-code table below. The subcommand groups:

GroupPurposeReference
workspaceCreate / list / show / update / remove / reload workspaces; print current idreferences/commands.md#workspace
sessionManage interactive sessions (list / new / show / rm / spawn a terminal)references/commands.md#session
taskDispatch one-shot tasks, list (incl. scoped by --origin), inspect them, tail activity, cancel, removereferences/commands.md#task
scheduleCron-triggered task launchers (create / list / patch / enable / disable / run / preview / list-tasks)references/commands.md#schedule
catalogInstall / sync / enable / disable agents, skills, MCPsreferences/commands.md#catalog
workflowSeed a workflow, read/mutate its live DAG (expand, patch a not_started node's spec via update-spec), respond to human nodes, terminatereferences/commands.md#workflow
runtimeList registered runtimes (copilot, etc)references/commands.md#runtime
Server inspectionhealth, config, status, logs — no lifecyclereferences/commands.md#server-inspection
Server lifecycleserve / start / stop / restartout of scope for this skill

Workspace discipline

Every workspace-scoped command requires an explicit selector. The CLI reads GLYPH_WORKSPACE from your env (already set), so commands work as-is:

glyph task dispatch --agent writer --brief "..."

To act on a different workspace, pass --workspace-id <id> per command:

glyph task list --workspace-id ws-Y

The CLI does not consult any server-side shared "current workspace" state — selectors are process-local, immune to interference from other clients (other CLI sessions, dashboard tabs, AI agents on the same server).

Output discipline

  • For parsing, always pass --json. Human/table format is not a stable contract — column order and headings change between releases.
  • For streaming activity, pipe through jq -c to keep one event per line.
  • Every --json shape you're likely to consume is documented in references/json-shapes.md. Consult it before writing a jq filter — most shapes have optional fields (present when the underlying row is non-null) that you should key off of.

Error discipline

Errors on stderr always carry a code:

agent "writer" is not ready: prereqs not acknowledged (HTTP 409, EntryNotReadyError)
  agent: acme/writer
  cause: prereqs not acknowledged
  fix:   glyph catalog agent ack-prereqs acme/writer

The fix: line is your next command, verbatim. The full code catalogue (all error names + typical HTTP + remediation) lives in references/error-codes.md. In particular:

  • EntryNotReadyError is the single most common branch you'll take — it carries a structured reason describing whether the agent needs ack-prereqs, is disabled, has missingDeps, or has blockedDeps (which recurse). The reason table is in references/error-codes.md#entrynotreadyerror-reasons.

Exit codes

codemeaningwhat to do
0successcontinue
1generic error (incl. missing workspace)read stderr; usually missing flag/env
2usage error (missing required flag, removed subcommand)fix the invocation; do not retry as-is
3server unreachableask user to glyph start or check --server
4server returned 4xx/5xxread code in stderr; consult references/error-codes.md

Exit code 2 means "the command itself is wrong" — never retry it without changing the invocation. Exit code 4 means "the server rejected this" — read the code field, it tells you the next move.

Pitfalls

  • To wait for a task, use glyph task activity <tid> --follow (real-time SSE). Polling task list in a shell loop wastes cycles and lags real events.
  • For a one-shot "what's happened so far?" snapshot, drop --followglyph task activity <tid> --json returns the current activity plus totalItems in one call. --follow blocks until the task terminates.
  • Terminate before you remove. Plain task rm <tid> requires the task to be in a terminal state (succeeded / failed / cancelled); if it's still running, glyph task cancel <tid> first, then task rm. Reach for --purge only when you also want the workdir + runtime state gone (post-mortem stderr.log is lost). Same distinction on session rm and workspace rm.
  • Always resume --follow with the printed last seq:. On every clean exit (event: end or stream closed) AND on mid-stream-error exit, the CLI prints last seq: <N> to stderr — pass --after <N> on the next --follow invocation to resume without gaps or duplicates. Ctrl+C is the exception (stderr is not flushed); derive the seq from the last stdout NDJSON item instead (... | tail -1 | jq .seq). Full resume playbook lives in references/playbooks.md#monitor-a-long-running-task.
  • Always get workspace ids from glyph workspace list --json | jq. Dashboard URL fragments drift between releases and aren't a wire contract.
  • schedule patch is sparse — only the flags you pass go on the wire. To remove a field, pass --clear-details / --clear-runtime (an empty --details "" is treated as omitted, not as clear).

References (mandatory reading before non-trivial work)

  • references/commands.md — per-group subcommand reference (workspace / session / task / schedule / catalog / workflow / runtime / server inspection). Skim once, keep as lookup.
  • references/playbooks.md — multi-step goal-oriented playbooks (install-and-verify agent, dispatch-and-wait, monitor task, sync entry, clean up, onboard fresh workspace, create a local agent on the fly).
  • references/json-shapes.md — the common --json payload shapes with concrete field lists and optionality notes.
  • references/error-codes.md — every code value the server emits + the matching glyph command to fix it.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.