mirror of
https://github.com/harivansh-afk/deskctl.git
synced 2026-04-15 05:02:08 +00:00
docs: tighten skill install docs and bundle
Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
eedb5de2d4
commit
2a8b51b4f5
5 changed files with 91 additions and 7 deletions
|
|
@ -27,10 +27,13 @@ npx deskctl --help
|
||||||
## Installable skill
|
## Installable skill
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npx skills add harivansh-afk/deskctl -s deskctl
|
npx skills add harivansh-afk/deskctl --skill deskctl -g
|
||||||
```
|
```
|
||||||
|
|
||||||
The installable skill lives in [`skills/deskctl`](skills/deskctl) and is built around the same observe -> wait -> act -> verify loop as the CLI.
|
The installable skill lives in [`skills/deskctl`](skills/deskctl), follows the
|
||||||
|
standard `skills/` repo layout, and installs directly from this GitHub repo via
|
||||||
|
`npx skills add ...`. It is built around the same observe -> wait -> act ->
|
||||||
|
verify loop as the CLI.
|
||||||
|
|
||||||
## Quick example
|
## Quick example
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ import DocLayout from "../layouts/DocLayout.astro";
|
||||||
There is also an installable skill for `skills.sh`-style agent runtimes:
|
There is also an installable skill for `skills.sh`-style agent runtimes:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre><code>npx skills add harivansh-afk/deskctl -s deskctl</code></pre>
|
<pre><code>npx skills add harivansh-afk/deskctl --skill deskctl -g</code></pre>
|
||||||
|
|
||||||
<h2>Links</h2>
|
<h2>Links</h2>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,13 @@ npx deskctl --help
|
||||||
For `skills.sh`-style runtimes:
|
For `skills.sh`-style runtimes:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
npx skills add harivansh-afk/deskctl -s deskctl
|
npx skills add harivansh-afk/deskctl --skill deskctl -g
|
||||||
```
|
```
|
||||||
|
|
||||||
The repo skill lives under `skills/deskctl` and is designed around the same
|
The repo skill lives under `skills/deskctl`, so `skills` can install it
|
||||||
observe -> wait -> act -> verify loop as the CLI.
|
directly from this GitHub repo. It is designed around the same observe -> wait
|
||||||
|
-> act -> verify loop as the CLI. `-g` installs it globally; omit that flag if
|
||||||
|
you want a project-local install.
|
||||||
|
|
||||||
## Other install paths
|
## Other install paths
|
||||||
|
|
||||||
|
|
|
||||||
7
skills/deskctl/agents/openai.yaml
Normal file
7
skills/deskctl/agents/openai.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
interface:
|
||||||
|
display_name: "deskctl"
|
||||||
|
short_description: "Control Linux X11 desktops from agent loops"
|
||||||
|
default_prompt: "Use $deskctl to diagnose the desktop, observe state, wait for UI changes, act deterministically, and verify the result."
|
||||||
|
|
||||||
|
policy:
|
||||||
|
allow_implicit_invocation: true
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
../../../docs/runtime-contract.md
|
|
||||||
73
skills/deskctl/references/runtime-contract.md
Normal file
73
skills/deskctl/references/runtime-contract.md
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
# deskctl runtime contract
|
||||||
|
|
||||||
|
This copy ships inside the installable skill so `npx skills add ...` installs a
|
||||||
|
self-contained reference bundle.
|
||||||
|
|
||||||
|
All commands support `--json` and use the same top-level envelope:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"data": {},
|
||||||
|
"error": null
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `--json` whenever you need to parse output programmatically.
|
||||||
|
|
||||||
|
## Stable window fields
|
||||||
|
|
||||||
|
Whenever a response includes a window payload, these fields are stable:
|
||||||
|
|
||||||
|
- `ref_id`
|
||||||
|
- `window_id`
|
||||||
|
- `title`
|
||||||
|
- `app_name`
|
||||||
|
- `x`
|
||||||
|
- `y`
|
||||||
|
- `width`
|
||||||
|
- `height`
|
||||||
|
- `focused`
|
||||||
|
- `minimized`
|
||||||
|
|
||||||
|
Use `window_id` for stable targeting inside a live daemon session. Use
|
||||||
|
`ref_id` or `@wN` for short-lived follow-up actions after `snapshot` or
|
||||||
|
`list-windows`.
|
||||||
|
|
||||||
|
## Stable grouped reads
|
||||||
|
|
||||||
|
- `deskctl get active-window` -> `data.window`
|
||||||
|
- `deskctl get monitors` -> `data.count`, `data.monitors`
|
||||||
|
- `deskctl get version` -> `data.version`, `data.backend`
|
||||||
|
- `deskctl get systeminfo` -> runtime-scoped diagnostic fields such as
|
||||||
|
`backend`, `display`, `session_type`, `session`, `socket_path`, `screen`,
|
||||||
|
`monitor_count`, and `monitors`
|
||||||
|
|
||||||
|
## Stable waits
|
||||||
|
|
||||||
|
- `deskctl wait window` -> `data.wait`, `data.selector`, `data.elapsed_ms`,
|
||||||
|
`data.window`
|
||||||
|
- `deskctl wait focus` -> `data.wait`, `data.selector`, `data.elapsed_ms`,
|
||||||
|
`data.window`
|
||||||
|
|
||||||
|
## Stable structured error kinds
|
||||||
|
|
||||||
|
When a command fails with structured JSON data, these `kind` values are stable:
|
||||||
|
|
||||||
|
- `selector_not_found`
|
||||||
|
- `selector_ambiguous`
|
||||||
|
- `selector_invalid`
|
||||||
|
- `timeout`
|
||||||
|
- `not_found`
|
||||||
|
|
||||||
|
Wait failures may also include `window_not_focused` in the last observation
|
||||||
|
payload.
|
||||||
|
|
||||||
|
## Best-effort fields
|
||||||
|
|
||||||
|
Treat these as useful but non-contractual:
|
||||||
|
|
||||||
|
- exact monitor names
|
||||||
|
- incidental text formatting in non-JSON mode
|
||||||
|
- default screenshot file names when no explicit path was provided
|
||||||
|
- environment-dependent ordering details from the window manager
|
||||||
Loading…
Add table
Add a link
Reference in a new issue