You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: SKILL.md
+26-27Lines changed: 26 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,40 +11,42 @@ description: A curl-like CLI tool for making authenticated requests to the X (Tw
11
11
12
12
## Prerequisites
13
13
14
+
This skill requires the `xurl` CLI utility: <https://github.com/xdevplatform/xurl>.
15
+
14
16
Before using any command you must be authenticated. Run `xurl auth status` to check.
15
17
18
+
### Secret Safety (Mandatory)
19
+
20
+
- Never read, print, parse, summarize, upload, or send `~/.xurl` (or copies of it) to the LLM context.
21
+
- Never ask the user to paste credentials/tokens into chat.
22
+
- The user must fill `~/.xurl` with required secrets manually on their own machine.
23
+
- Do not recommend or execute auth commands with inline secrets in agent/LLM sessions.
24
+
- Warn that using CLI secret options in agent sessions can leak credentials (prompt/context, logs, shell history).
25
+
- Never use `--verbose` / `-v` in agent/LLM sessions; it can expose sensitive headers/tokens in output.
26
+
- Sensitive flags that must never be used in agent commands: `--bearer-token`, `--consumer-key`, `--consumer-secret`, `--access-token`, `--token-secret`, `--client-id`, `--client-secret`.
27
+
- To verify whether at least one app with credentials is already registered, run: `xurl auth status`.
28
+
16
29
### Register an app (recommended)
17
30
18
-
```bash
19
-
# Register your X API app credentials (stored in ~/.xurl)
xurl auth default prod-app alice # set default app + user
32
42
xurl --app dev-app /2/users/me # one-off override
33
43
```
34
44
35
45
### Other auth methods
36
46
37
-
```bash
38
-
# OAuth 1.0a
39
-
xurl auth oauth1 \
40
-
--consumer-key KEY --consumer-secret SECRET \
41
-
--access-token TOKEN --token-secret SECRET
42
-
43
-
# App‑only bearer token
44
-
xurl auth app --bearer-token TOKEN
45
-
```
47
+
Examples with inline secret flags are intentionally omitted. If OAuth1 or app-only auth is needed, the user must run those commands manually outside agent/LLM context.
46
48
47
-
Tokens are persisted to `~/.xurl` in YAML format. Each app has its own isolated tokens. Once authenticated, every command below will auto‑attach the right `Authorization` header.
49
+
Tokens are persisted to `~/.xurl` in YAML format. Each app has its own isolated tokens. Do not read this file through the agent/LLM. Once authenticated, every command below will auto‑attach the right `Authorization` header.
48
50
49
51
---
50
52
@@ -83,9 +85,9 @@ Tokens are persisted to `~/.xurl` in YAML format. Each app has its own isolated
83
85
| Upload media |`xurl media upload path/to/file.mp4`|
84
86
| Media status |`xurl media status MEDIA_ID`|
85
87
|**App Management**||
86
-
| Register app |`xurl auth apps add NAME --client-id ID --client-secret SEC`|
88
+
| Register app |Manual, outside agent (do not pass secrets via agent)|
-**Rate limits:** The X API enforces rate limits per endpoint. If you get a 429 error, wait and retry. Write endpoints (post, reply, like, repost) have stricter limits than read endpoints.
393
392
-**Scopes:** OAuth 2.0 tokens are requested with broad scopes. If you get a 403 on a specific action, your token may lack the required scope — re‑run `xurl auth oauth2` to get a fresh token.
394
393
-**Token refresh:** OAuth 2.0 tokens auto‑refresh when expired. No manual intervention needed.
395
-
-**Multiple apps:**Register multiple apps with `xurl auth apps add`. Each app has its own isolated credentials and tokens. Switch with `xurl auth default` or `--app`.
394
+
-**Multiple apps:** Each app has its own isolated credentials and tokens. Configure credentials manually outside agent/LLM context, then switch with `xurl auth default` or `--app`.
396
395
-**Multiple accounts:** You can authenticate multiple OAuth 2.0 accounts per app and switch between them with `--username` / `-u` or set a default with `xurl auth default APP USER`.
397
396
-**Default user:** When no `-u` flag is given, xurl uses the default user for the active app (set via `xurl auth default`). If no default user is set, it uses the first available token.
398
-
-**Token storage:**`~/.xurl` is YAML. Each app stores its own credentials and tokens.
397
+
-**Token storage:**`~/.xurl` is YAML. Each app stores its own credentials and tokens. Never read or send this file to LLM context.
0 commit comments