Locate and read local code-agent thread files
Project description
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.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-win_arm64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-win_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca0784c8d15c9e8043c0b343b7d982bd74d6a74b79144320496f1315b8f7b150
|
|
| MD5 |
834fc7eb3f844b7fd5ce8643d68ee0fe
|
|
| BLAKE2b-256 |
979dbdc05d7ce2cef3302bcb9cbc3a058d562902a5acb810709ce087f10dac14
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-win_arm64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-win_arm64.whl -
Subject digest:
ca0784c8d15c9e8043c0b343b7d982bd74d6a74b79144320496f1315b8f7b150 - Sigstore transparency entry: 1160265899
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-win_amd64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3be45f32795f62f7ce24ca70861ba3312efcb357b9febbd3671b0698847e2628
|
|
| MD5 |
25915599970e38106f2f8a9c7e5f2cec
|
|
| BLAKE2b-256 |
f6356711a043fbe60891fd9d889a372acfd9ff7c91c68b89ef5bec5c2b321b8f
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-win_amd64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-win_amd64.whl -
Subject digest:
3be45f32795f62f7ce24ca70861ba3312efcb357b9febbd3671b0698847e2628 - Sigstore transparency entry: 1160266037
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ef5d5aaf853258d260a3bba5c206968c6f8a62bc33f81f1f1a8773af652ccd3
|
|
| MD5 |
e41e4f06d35f27b8520ad69c102349af
|
|
| BLAKE2b-256 |
ab8bdda7d510b73a626544fd9f7f4ba57467495495ddd9683c88023296dbc2fc
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-manylinux2014_x86_64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-manylinux2014_x86_64.whl -
Subject digest:
2ef5d5aaf853258d260a3bba5c206968c6f8a62bc33f81f1f1a8773af652ccd3 - Sigstore transparency entry: 1160266007
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc601e1f5944e0470cdd2fbfca1673878376affdcb5682ca13ccab57c438b209
|
|
| MD5 |
b37ce5b59328a752acd63ca8eb1aadd4
|
|
| BLAKE2b-256 |
2804cebd011c9a12464d798ca0c3171dded15b772d71d6d62d3659f8be91f1b2
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-manylinux2014_aarch64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-manylinux2014_aarch64.whl -
Subject digest:
fc601e1f5944e0470cdd2fbfca1673878376affdcb5682ca13ccab57c438b209 - Sigstore transparency entry: 1160266132
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-macosx_11_0_x86_64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-macosx_11_0_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: Python 3, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bdffb09f5662a0b78bc0f560f66474d5124990dc8123ca68f8a90ffaafb28b7
|
|
| MD5 |
593d17e0f0fea7bdbbe7c1f5956e3c1d
|
|
| BLAKE2b-256 |
2f9fda5fe9bacfb6ec66651dc8e9116e0661ab8829c7cae3e1243612dea8b675
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-macosx_11_0_x86_64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-macosx_11_0_x86_64.whl -
Subject digest:
8bdffb09f5662a0b78bc0f560f66474d5124990dc8123ca68f8a90ffaafb28b7 - Sigstore transparency entry: 1160266083
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.26-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.26-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6974ff0dcdbc378ebd1e0647ae5ef5df010d1b44a06899edf52aef40e0b15fd
|
|
| MD5 |
fe00acfe6652b76432eb2c474dc976fd
|
|
| BLAKE2b-256 |
c8f3f10c4a8ae9af3ca264f392c45460bbf5897b70ec4dcf94ae1b83b9d95bcb
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.26-py3-none-macosx_11_0_arm64.whl:
Publisher:
pypi-publish.yml on Xuanwo/xurl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xuanwo_xurl-0.0.26-py3-none-macosx_11_0_arm64.whl -
Subject digest:
d6974ff0dcdbc378ebd1e0647ae5ef5df010d1b44a06899edf52aef40e0b15fd - Sigstore transparency entry: 1160265957
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@9445e1a612717aed63226658a06792e1d7243957 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@9445e1a612717aed63226658a06792e1d7243957 -
Trigger Event:
workflow_run
-
Statement type: