xURL
xURL is a CLI that reads, queries, and writes AI agent conversations through a unified agents:// URI scheme.
Also known as Xuanwo's URL.
What xURL Can Do
xURL gives you one URI scheme (agents://) to read, query, discover, and write conversations across multiple AI agent CLIs.
- Read a conversation as markdown —
xurl agents://codex/<id> - Query threads by provider, keyword, local path, or role —
xurl 'agents://codex?q=refactor' - Discover child targets and metadata before drilling down —
xurl -I agents://codex/<id> - Write to start or continue a conversation —
xurl agents://codex -d "hello"
Providers
agents://amp |
agents://claude |
agents://codex |
agents://copilot |
agents://cursor |
agents://gemini |
agents://kimi |
agents://opencode |
agents://pi |
Installation
Install as an agent skill:
npx skills add Xuanwo/xurl
Or install the standalone CLI:
brew tap xuanwo/tap && brew install xurl # Homebrew
cargo install xurl-cli # Cargo
uv tool install xuanwo-xurl # Python / uv
npm install -g @xuanwo/xurl # npm
Quick Start
Ask your agent to summarize a thread:
Please summarize this thread: agents://codex/xxx_thread
Usage
Note: The
agents://scheme prefix is optional —codex/...is equivalent toagents://codex/....
Read
xurl agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592
xurl agents://copilot/688628a1-407a-4b4e-b24a-1a250ebf864f
Save output to a file:
xurl -o /tmp/conversation.md agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592
Query
By provider:
xurl agents://codex
xurl 'agents://codex?q=spawn_agent'
xurl 'agents://claude?q=agent&limit=5'
xurl 'agents://copilot?q=resume&limit=5'
By local path:
xurl agents:///Users/alice/work/xurl
xurl 'agents:///Users/alice/work/xurl?q=refactor&limit=5'
xurl 'agents://.?q=refactor&providers=codex,claude'
xurl 'agents://~/work/xurl?providers=opencode'
By role:
xurl agents://codex/reviewer
Query results include reduced thread metadata when available, so you can inspect fields like payload.git.branch without opening each thread individually.
Discover
xurl -I agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592
Frontmatter includes provider metadata flattened into readable key-value lines (e.g. payload.git.branch = ...), and skips oversized instruction-like fields.
Drill down into a discovered child target:
xurl agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592/019c87fb-38b9-7843-92b1-832f02598495
Write
Start a new conversation:
xurl agents://codex -d "Draft a migration plan"
Start with a role URI:
xurl agents://codex/reviewer -d "Review this patch"
xurl agents://copilot/research -d "Investigate the failing integration test"
Continue an existing conversation:
xurl agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592 -d "Continue"
Pass extra parameters to the provider CLI via query string:
xurl "agents://codex?cd=%2FUsers%2Falice%2Frepo&add-dir=%2FUsers%2Falice%2Fshared&model=gpt-5" -d "Review this patch"
Command Reference
xurl [OPTIONS] <URI>
-I, --head: output frontmatter/discovery info only, including the first provider metadata record flattened into key-value lines when available.-d, --data <DATA>: write payload (repeatable).- text:
-d "hello" - file:
-d @prompt.txt - stdin:
-d @-
- text:
-o, --output <PATH>: write command output to file.
Error Output
xurl writes actionable stderr errors for agents:
- unsupported providers and unsupported capabilities include
requested_uri, suggestednext_steps, and the GitHub issue link for requesting support - missing local data includes evidence such as
searched_rootsso the next recovery step is explicit - provider CLI failures include the command, exit code, and concrete retry guidance
URI Reference
Agents URI
[agents://]<provider>[/<token>[/<child_id>]][?<query>]
|------| |--------| |---------------------------| |------|
optional provider optional path parts query
scheme
scheme: optionalagents://prefix. If omitted,xurltreats input as anagentsURI shorthand.provider: target provider name, such asamp,claude,codex,copilot,cursor,gemini,kimi,opencode,pi.token: main conversation identifier or role name.child_id: child/subagent identifier under a main conversation.query: optional key-value parameters, interpreted by context.
Path-Scoped Query URI
agents:///abs/path[?<query>]
agents://.[?<query>]
agents://./subdir[?<query>]
agents://..[?<query>]
agents://../repo[?<query>]
agents://~[?<query>]
agents://~/repo[?<query>]
agents:///abs/path: canonical local path query form.agents://./agents://./subdir: query relative to the current working directory.agents://../agents://../repo: query relative to the parent of the current working directory.agents://~/agents://~/repo: query relative to the home directory.- path-scoped query always returns a conversation list.
Agents Query
q=<keyword>: filters discovery results by keyword. Use when you want to find conversations by topic.limit=<n>: limits discovery result count (default10). Use when you need a shorter or longer result list.providers=<name[,name...]>: restricts a path-scoped query to selected providers.<key>=<value>: in write mode (-d),xurlforwards as--<key> <value>to the provider CLI.<flag>: in write mode (-d),xurlforwards as--<flag>to the provider CLI.
Examples:
agents://codex?q=spawn_agent&limit=10
agents:///Users/alice/work/xurl?q=refactor&providers=codex,claude
agents://.?q=refactor&providers=codex
agents://codex/<conversation_id>
agents://codex/reviewer
agents://codex?cd=%2FUsers%2Falice%2Frepo&add-dir=%2FUsers%2Falice%2Fshared
Metadata
Release files for xuanwo-xurl 0.0.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| xuanwo_xurl-0.0.27-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| xuanwo_xurl-0.0.27-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| xuanwo_xurl-0.0.27-py3-none-manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| xuanwo_xurl-0.0.27-py3-none-manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| xuanwo_xurl-0.0.27-py3-none-macosx_11_0_x86_64.whl | Python 3 | none | macOS 11.0+ x86-64 | Details |
| xuanwo_xurl-0.0.27-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 16.9 MB
Release files / xuanwo_xurl-0.0.27-py3-none-win_arm64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-win_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
4f7f2fb4f436ef83bb9517f1447b2ad7f1c3e4c23a129d18a697051ae16c5369
|
|
BLAKE2b-256 checksum How to use checksums |
96d546d7e5d3c7228728d487f8c802beae9d92f281b173ad32c505e1b201842c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logRelease files / xuanwo_xurl-0.0.27-py3-none-win_amd64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-win_amd64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9bb5dc2afcd26b284270ae8474516bc9cdddec3e2cfbf7ec613d644eafe304ea
|
|
BLAKE2b-256 checksum How to use checksums |
eed57503a6fb4d471f8ef7661d7e3bba8e5c96337bc181df1fdc7bb5588940a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logRelease files / xuanwo_xurl-0.0.27-py3-none-manylinux2014_x86_64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
b17133be0949110637da00326dc66aa2d4955421cd61be0bcf7687e651da1ea4
|
|
BLAKE2b-256 checksum How to use checksums |
e5c3da342e4a547fbb5c6e4176c15d6e3f8a208d86e69bb4c933d77756c3f5ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logRelease files / xuanwo_xurl-0.0.27-py3-none-manylinux2014_aarch64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-manylinux2014_aarch64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
b93678c5fe1f82fc86f830275d1cc9f8ad3ba76c30849ba6f5cb9b27d0bfffb9
|
|
BLAKE2b-256 checksum How to use checksums |
6c5df19cd87434b05f9f2c9804cdbb32e16a7b48d0da5afb59a07a3fd57e87b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logRelease files / xuanwo_xurl-0.0.27-py3-none-macosx_11_0_x86_64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-macosx_11_0_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Python 3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ddf21d83c3b9fa4a1854700091e938f4221361bb9e4d7dd0fc9496ee9eced77
|
|
BLAKE2b-256 checksum How to use checksums |
d34bc4bcb9a4d16c9b877a75ccf87c60fe704cfd060ef84f47bb3fdc29aafbaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency logRelease files / xuanwo_xurl-0.0.27-py3-none-macosx_11_0_arm64.whl
| Download URL | xuanwo_xurl-0.0.27-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
36d9e931edd596062abc6cd0cb3e3bd3aec1f3d58cfb20e79264da19d56d5028
|
|
BLAKE2b-256 checksum How to use checksums |
9374b46fd8073806b836f5a3da535808d4233ffca70df9e0a35705aba537d53b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 24, 2026.
Transparency log