friday-cli
Interacts with a running Friday daemon via CLI and HTTP — lists/creates/modifies workspaces, triggers signals, watches sessions, publishes skills and agents. Use whenever you need to poke at a local Friday daemon, inspect its state, fire a signal, drive the autopilot / self-modification flywheel, create a workspace programmatically, or validate that a workspace.yml you just authored actually runs. Also use when the task involves `$FRIDAYD_URL`, `deno task atlas`, curl-ing the daemon, or automating Friday itself.
npx skills add friday-platform/friday-studio --skill friday-cli --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Friday CLI & HTTP Friday is orchestrated by a daemon at `$FRIDAYD_URL`. The exact scheme/port varies by install — installed Friday Studio runs on `:18080` (with TLS configured automatically by the launcher), in-tree dev runs on `:8080` (plain HTTP unless you opt in with `bash scripts/setup-tls.sh`), and `FRIDAY_PORT_FRIDAY` can override either. Don't hardcode the URL — resolve `$FRIDAYD_URL` from your own process env via `run_code` (preamble below) and emit the resolved literal in every command you show the user. There are two surfaces for interacting with the daemon: the `deno task atlas` CLI (thin HTTP client, great for humans and shell scripts) and the raw HTTP API (more endpoints, SSE streaming, the only option for many CRUD ops on workspace internals). ## Daemon URL — resolve before emitting curl commands `$FRIDAYD_URL` is in the **Friday daemon's process env**, not the user's shell. If you emit a curl example with a literal `$FRIDAYD_URL`, the user pastes it into a shell that has no such variable and gets `curl: (3) URL rejected: No host part in the URL`. **Always resolve `$FRIDAYD_URL` to a concrete value before showing a command to the user.** Use `run_code` to read your
- Daemon URL — resolve before emitting curl commands
- Two load-bearing rules
- When to use CLI vs HTTP
- Workflow preflight
- The five operations that cover 90% of tasks
- 1. List workspaces and find IDs
- 2. Inspect a workspace's signals before firing
- 3. Fire a signal — three modes
- 4. Watch a running session's agent activity + read the outcome
- 5. Create a workspace from a workspace.yml
- Guardrails
- Patterns for the flywheel
- Output formats — the --json and --human convention
- When things go wrong
deno task atlas daemon status or (after resolving $FRIDAYD_URL via run_code and substituting the literal value — see preamble above): curl -k -sf "<resolved-url>/health" && echo OK deno task atlas daemon start --detached deno task atlas daemon restart --force deno task atlas workspace list --json deno task atlas signal list -w <workspace-id-or-name> --json curl -k -sf \ curl -k -sf -X POST \
What does the friday-cli skill do?
Interacts with a running Friday daemon via CLI and HTTP — lists/creates/modifies workspaces, triggers signals, watches sessions, publishes skills and agents. Use whenever you need to poke at a local Friday daemon, inspect its state, fire a signal, drive the autopilot / self-modification flywheel, create a workspace programmatically, or validate that a workspace.yml you just authored actually runs. Also use when the task involves `$FRIDAYD_URL`, `deno task atlas`, curl-ing the daemon, or automating Friday itself.
How do I install it?
Run `npx skills add friday-platform/friday-studio --skill friday-cli --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From friday-platform/friday-studio, a repository with 98 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.