Agent skill · Audited from source
xurl
skill · xdevplatform/xurlMIT licenceAudited 21 Oct 2026 · source ce13179f57fc
Is it safe? With care — CAUTION, grade B (89/100). We read this skill's source at commit ce13179f57fc and observed network and shell access and no hard-coded secrets. The audit raised 10 findings, 1 critical or high. What it does: A curl-like CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, send or read end-to-end encrypted…
Cite
Cite this page
ModelsAtlas. “xurl (xdevplatform/xurl)”. Retrieved 21 Oct 2026. https://modelsatlas.com/skills/xdevplatform/xurl
Trust audit
Audit 0.4.1 · source read 21 Oct 2026
CAUTION means the audit found things worth knowing before you trust this skill. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkDeclared1 observation
- ShellDeclared2 observations
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 1 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 5 |
L2 Instructions | Prompt injection, authority framing, hidden directives | FAIL | 4 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (10)
HIGHPrompt injectionprompt.credential_read · SKILL.md:28
- Never run `xurl token` in agent/LLM sessions: it prints a live OAuth2 access token to stdout, which is a credential and must not enter the LLM context.
- Why
- asks the agent to read credentials
- Fix
- —
LOWNetwork egressnet.raw_ip · auth/auth_test.go:239
RedirectURI: "http://127.0.0.1:7777/callback",
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · auth/auth_test.go:249
assert.Equal(t, "http://127.0.0.1:7777/callback", a.redirectURI)
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · auth/auth_test.go:482
redirectURI: "http://127.0.0.1:9090/oauth/callback",
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · cli/mcp_test.go:581
b := newMCPBridgeWithIO("http://127.0.0.1:0", a, "", strings.NewReader(""), &bytes.Buffer{})- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · cli/mcp_test.go:590
b := newMCPBridgeWithIO("http://127.0.0.1:0", a, "", strings.NewReader(""), &bytes.Buffer{})- Why
- No further detail recorded for this rule.
- Fix
- —
LOWPrompt injectionprompt.transfer_instruction · CHANGELOG.md:35
- `xurl chat` — an end-to-end encrypted XChat client. Commands: `keys status|restore|import`, `conversations`, `read`, `send`, `listen`, `download`, `rotate`, `add-members`, `mark-read`, and `typing`.
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
INFOSupply chainprompt.pipe_to_shell · CHANGELOG.md:67
- [2026-06-29] `install.sh` now uses `id -u` instead of the bash-only `$EUID` to detect root, so `curl ... | sh` (POSIX/dash) installs to `/usr/local/bin` as root instead of silently falling back to `
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOSupply chainprompt.pipe_to_shell · README.md:31
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha ce13179f57fc · 21 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherxdevplatform GitHub organizationOwner of the repository this skill is read from
- Source folderxdevplatform/xurlThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdictce13179f57fcA new audit runs when the source changes
- Repository statusNot archivedLast push 21 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: A curl-like CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, send or read end-to-end encrypted…
--- name: xurl description: A curl-like CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, send or read end-to-end encrypted XChat messages, upload media, or interact with any X API v2 endpoint. Supports multiple apps, OAuth 2.0, OAuth 1.0a, and app-only auth. --- # xurl — Agent Skill Reference `xurl` is a CLI tool for the X API. It supports both **shortcut commands** (human/agent‐friendly one‐liners) and **raw curl‐style** access to any v2 endpoint. All commands return JSON to stdout. --- ## Prerequisites This skill requires the `xurl` CLI utility: <https://github.com/xdevplatform/xurl>. Before using any command you must be authenticated. Run `xurl auth status` to check. ### Secret Safety (Mandatory) - Never read, print, parse, summarize, upload, or send anything under `~/.xurl/` (or copies of it) to the LLM context. - `~/.xurl/keys.yml` contains XChat **private encryption keys** — the strictest no-read rule applies. - Never pass `--pin` inline in agent/LLM sessions (`xurl chat keys restore --pin ...` leaks the recovery PIN to context and shell history). Run `xurl chat keys restore` without the flag so the PIN is prompted without echo, or have the user run it manually. - Never ask the user to paste credentials/tokens into chat. - The user must fill `~/.xurl/auth.yml` with required secrets manually on their own machine. - Do not recommend or execute auth commands with inline secrets in agent/LLM sessions. - Warn that using CLI secret options in agent sessions can leak credentials (prompt/context, logs, shell history). - Never use `--verbose` / `-v` in agent/LLM sessions; it can expose sensitive headers/tokens in output. - Never run `xurl token` in agent/LLM sessions: it prints a live OAuth2 access token to stdout, which is a credential and must not enter the LLM context. - `xurl mcp` is for configuring an MCP client (it bridges stdio↔HTTP and injects the bearer token); it is not something to invoke directly from an agent/LLM session. - Sensitive flags that must never be used in agent commands: `--bearer-token`, `--consumer-key`, `--consumer-secret`, `--access-token`, `--token-secret`, `--client-id`, `--client-secret`. - To verify whether at least one app with credentials is already registered, run: `xurl auth status`. ### Register an app (recommended) App credential registration must be done manually by the user outside the agent/LLM session. After credentials are registered, authenticate against the app that holds those credentials: ```bash xurl auth oauth2 --app APP_NAME ``` You can also run `xurl auth default APP_NAME` first and then use `xurl auth oauth2`. On a remote/headless machine (no reachable browser callback), add `--headless`: `xurl auth oauth2 --app APP_NAME --headless` prints the authorization URL and reads the pasted redirect URL (or code) back, so no localhost callback is needed. For multiple pre-configured apps, switch between them: ```bash xurl auth default prod-app # set default app xurl auth default prod-app alice # set default app + user xurl --app dev-app /2/users/me # one-off override xurl auth apps redirect-uri get prod-app xurl auth apps redirect-uri set prod-app http://localhost:8080/callback ``` ### Other auth methods 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. Tokens are persisted to `~/.xurl/auth.yml` in YAML format (a legacy single-file `~/.xurl` is migrated automatically). Each app has its own isolated tokens and may also store a `redirect_uri`. `REDIRECT_URI` in the environment still takes precedence over the stored app value. Do not read this file (or anything under `~/.xurl/`) through the agent/LLM. Once authenticated, every command below will auto‐attach the right `Authorization` header. --- ## Quick Reference | Action | Command | |---|---| | Post | `xurl post "Hello world!"` | | Reply | `xurl reply POST_ID "Nice post!"` | | Quote | `xurl quote POST_ID "My take"` | | Delete a post | `xurl delete POST_ID` | | Read a post | `xurl read POST_ID` | | Search posts | `xurl search "QUERY" -n 10` | | Who am I | `xurl whoami` | | Look up a user | `xurl user @handle` | | List a user's posts | `xurl posts @handle -n 10` | | Home timeline | `xurl timeline -n 20` | | Mentions | `xurl mentions -n 10` | | Like | `xurl like POST_ID` | | Unlike | `xurl unlike POST_ID` | | Repost | `xurl repost POST_ID` | | Undo repost | `xurl unrepost POST_ID` | | Bookmark | `xurl bookmark POST_ID` | | Remove bookmark | `xurl unbookmark POST_ID` | | List bookmarks | `xurl bookmarks -n 10` | | List likes | `xurl likes -n 10` | | Follow | `xurl follow @handle` | | Unfollow | `xurl unfollow @handle` | | List following | `xurl following -n 20` | | List followers | `xurl followers -n 20` | | Block | `xurl block @handle` | | Unblock | `xurl unblock @handle` | | Mute | `xurl mute @handle` | | Unmute | `xurl unmute @handle` | | Send DM | `xurl dm @handle "message"` | | List DMs | `xurl dms -n 10` | | Upload media | `xurl media upload path/to/file.mp4` | | Media status | `xurl media status MEDIA_ID` | | **Encrypted Chat (XChat)** | | | Chat key status | `xurl chat keys status` | | Restore chat keys | `xurl chat keys restore` (PIN prompted; never pass `--pin` in agent sessions) | | Import chat keys | `xurl chat keys import` (blob prompted; avoid passing it as an argument) | | List chat inbox | `xurl chat conversations` | | Read a conversation | `xurl chat read @handle -n 50` | | Send encrypted message | `xurl chat send @handle "message"` | | Listen for new messages | `xurl chat listen @handle` | | Rotate a conversation key | `xurl chat rotate CONV --yes` (write op — see notes) | | Send with an attachment | `xurl chat send CONV "text" --file path/to/img.png` | | Reply to a message | `xurl chat send CONV "text" --reply-t
Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit ce13179
npm install -g @xdevplatform/xurl
git clone https://github.com/xdevplatform/xurl git -C xurl checkout ce13179f57fc
Commands as the repository documents them: shown, never run by us. Our verdict covers commit ce13179f57fc only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Desktop | Mentioned in its text, not tested | Skills for Claude Desktop · About Claude Desktop |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
Audit history
Every audit, every source change
- !CAUTION B 89 / 100
first audit · source
ce13179f57fc
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/xdevplatform/xurl/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
obra/superpowers
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions…
obra/superpowers
Use when you have a spec or requirements for a multi-step task, before touching code
obra/superpowers
Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions
Add this badge to your README
[](https://modelsatlas.com/skills/xdevplatform/xurl/)
<a href="https://modelsatlas.com/skills/xdevplatform/xurl/"><img src="https://modelsatlas.com/skills/xdevplatform/xurl/badge.svg" alt="ModelsAtlas: CAUTION B"></a>
Questions about xurl
What does the xurl skill do?
Is xurl safe to install?
What can xurl access on my machine?
What do I need installed to use xurl?
Which assistants does xurl work with?
How current is this page?
Sources
- github.com/xdevplatform/xurl — the audited source at commit ce13179f57fc and every finding aboveObserved · 21 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the xurl skill do?
- Is xurl safe to install?
- What can xurl access on my machine?