Locate and read local code-agent thread files
Project description
xURL
xURL is a client for AI agent URLs.
Also known as Xuanwo's URL.
Features
- Multi-agent thread resolution:
Amp
Codex
Claude
Gemini
Pi
OpenCode
- Unified URI scheme:
agents://<provider>/<thread_path>is the primary format. - Default output is markdown with YAML frontmatter header plus provider-specific body.
-I, --headoutputs frontmatter only.- For Codex/Claude/Pi main URIs, head output includes discovery fields (
subagents/entries) that replace list-mode aggregation. - Subagent markdown views print full parent/subagent URIs in
agents://...format. - Non-fatal diagnostics are kept internal; only fatal errors are printed to
stderr. - Automatically respects official environment variables and default local data roots for each supported agent.
Install
Install from PyPI via uv:
uv tool install xuanwo-xurl
xurl --help
Or install from PyPI via pipx:
pipx install xuanwo-xurl
xurl --help
Or run directly from npm with npx:
npx @xuanwo/xurl --help
Or install globally via npm:
npm install -g @xuanwo/xurl
xurl --help
Install as a Codex skill:
npx skills add Xuanwo/xurl
URL Format
Primary URI format:
agents://<provider>/<thread_path>
ASCII breakdown:
agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592/019c87fb-38b9-7843-92b1-832f02598495
^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
scheme provider thread_path (provider-specific: main thread, optional child thread)
Agents
Amp
- Supported URIs:
agents://amp/<thread_id>
- Thread id format:
T-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Resolution:
XDG_DATA_HOME/amp/threads/<thread_id>.json- fallback:
~/.local/share/amp/threads/<thread_id>.json
- Example:
xurl agents://amp/T-019c0797-c402-7389-bd80-d785c98df295
Codex
- Supported URIs:
agents://codex/<session_id>agents://codex/threads/<session_id>agents://codex/<main_session_id>/<agent_id>
- Subagent modes:
- Aggregate header only:
xurl -I agents://codex/<main_session_id> - Drill-down:
xurl agents://codex/<main_session_id>/<agent_id>
- Aggregate header only:
- Resolution order:
- SQLite thread index under
CODEX_HOME(state_<version>.sqlitefirst, thenstate.sqlite) viathreads(id, rollout_path, archived). - Filesystem fallback under
sessions/andarchived_sessions/forrollout-*.jsonl.
- SQLite thread index under
- Examples:
xurl agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592
xurl agents://codex/threads/019c871c-b1f9-7f60-9c4f-87ed09f13592
xurl -I agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592
xurl agents://codex/019c871c-b1f9-7f60-9c4f-87ed09f13592/019c87fb-38b9-7843-92b1-832f02598495
Claude
- Supported URIs:
agents://claude/<session_id>agents://claude/<main_session_id>/<agent_id>
- Subagent modes:
- Aggregate header only:
xurl -I agents://claude/<main_session_id> - Drill-down:
xurl agents://claude/<main_session_id>/<agent_id>
- Aggregate header only:
- Example:
xurl agents://claude/2823d1df-720a-4c31-ac55-ae8ba726721f
xurl -I agents://claude/2823d1df-720a-4c31-ac55-ae8ba726721f
xurl agents://claude/2823d1df-720a-4c31-ac55-ae8ba726721f/acompact-69d537
OpenCode
- Supported URIs:
agents://opencode/<session_id>
- Example:
xurl agents://opencode/ses_43a90e3adffejRgrTdlJa48CtE
Gemini
- Supported URI:
agents://gemini/<session_id>
- Session id format:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Resolution:
GEMINI_CLI_HOME/.gemini/tmp/*/chats/session-*.json- fallback:
~/.gemini/tmp/*/chats/session-*.json
- Example:
xurl agents://gemini/29d207db-ca7e-40ba-87f7-e14c9de60613
Pi
- Supported URIs:
agents://pi/<session_id>agents://pi/<session_id>/<entry_id>
- Session id format:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Resolution:
PI_CODING_AGENT_DIR/sessions/**/*.jsonl- fallback:
~/.pi/agent/sessions/**/*.jsonl
- Rendering:
agents://pi/<session_id>renders the latest leaf branch in the session tree.agents://pi/<session_id>/<entry_id>renders the branch ending at the specified entry id.xurl -I agents://pi/<session_id>outputsentriesin frontmatter for drill-down discovery.
- Example:
xurl agents://pi/12cb4c19-2774-4de4-a0d0-9fa32fbae29f
xurl agents://pi/12cb4c19-2774-4de4-a0d0-9fa32fbae29f/d1b2c3d4
xurl -I agents://pi/12cb4c19-2774-4de4-a0d0-9fa32fbae29f
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 Distribution
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.13.tar.gz.
File metadata
- Download URL: xuanwo_xurl-0.0.13.tar.gz
- Upload date:
- Size: 113.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46669cac90e9815e4673cf61c7495284f859cdb4eedbc2cbda6f504e29df8d06
|
|
| MD5 |
6c121c481f5e6091abb6d079a4626ca5
|
|
| BLAKE2b-256 |
74a341f7cec8cca7a214a6c193f0df9f2488aea6fa4c6ece6a577b5842a3c70d
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.13.tar.gz:
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.13.tar.gz -
Subject digest:
46669cac90e9815e4673cf61c7495284f859cdb4eedbc2cbda6f504e29df8d06 - Sigstore transparency entry: 984946800
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Branch / Tag:
refs/tags/v0.0.13 - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.13-py3-none-win_amd64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.13-py3-none-win_amd64.whl
- Upload date:
- Size: 2.0 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 |
7512bf4a55b9db43a204d2282244b9a8379970de3df5d18c4ec520698b624e1c
|
|
| MD5 |
c43dee03de7db6e4cbb33057b46ee63c
|
|
| BLAKE2b-256 |
c9d07457925cd4839034767ae44619571038d04f889e9026f2d717230539ff36
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.13-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.13-py3-none-win_amd64.whl -
Subject digest:
7512bf4a55b9db43a204d2282244b9a8379970de3df5d18c4ec520698b624e1c - Sigstore transparency entry: 984946818
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Branch / Tag:
refs/tags/v0.0.13 - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62b7e1f8c057f15b740257be4fd09328e2bf6e91b0c59e2bbe4db569958b51da
|
|
| MD5 |
9ae24c16abf0d39f28064b6e9b06d91b
|
|
| BLAKE2b-256 |
bf9f16dc85635da936c6c7b13dc6732814fb56be02a9b45b335fb97ca8ceb187
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.13-py3-none-manylinux_2_17_x86_64.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.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
62b7e1f8c057f15b740257be4fd09328e2bf6e91b0c59e2bbe4db569958b51da - Sigstore transparency entry: 984946806
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Branch / Tag:
refs/tags/v0.0.13 - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file xuanwo_xurl-0.0.13-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: xuanwo_xurl-0.0.13-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.0 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 |
a28995a3dde49bba0293b8bd33e8df0c6a4e35741218c6959012a7cff1dff6bd
|
|
| MD5 |
44ba99853ab02845dfb6fe529afaba8f
|
|
| BLAKE2b-256 |
dc5c380284302e5704e7f947eea950e4adb6ef787a82964bb4b1041636f393d3
|
Provenance
The following attestation bundles were made for xuanwo_xurl-0.0.13-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.13-py3-none-macosx_11_0_arm64.whl -
Subject digest:
a28995a3dde49bba0293b8bd33e8df0c6a4e35741218c6959012a7cff1dff6bd - Sigstore transparency entry: 984946813
- Sigstore integration time:
-
Permalink:
Xuanwo/xurl@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Branch / Tag:
refs/tags/v0.0.13 - Owner: https://github.com/Xuanwo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a3a195b417bd97aa93dc467d37c0f1b2cf52b4e0 -
Trigger Event:
push
-
Statement type: