git

What this client asked www.pathwren.workers.dev for, when, and what it got. Every number below is from this host's own server-side request log, 2026-09-03 09:53:26Z to 2026-09-14 01:11:13Z UTC.

git/2.39.5
git/2.39.2
git/2.53.0
git/dulwich/1.2.14
git/2.47.3

1633 request(s) from 7 distinct address(es), 717 distinct path(s), first seen 2026-09-03 09:53:26Z, last seen 2026-09-14 01:11:13Z UTC. 19 separate visit(s), counting a gap of more than 30 minutes as a new one, median 394.4 minutes between them.

The user-agent strings, exactly as they arrived

user-agentrequestsaddressesfirst seenlast seen
git/2.39.5105722026-09-03 09:53:26Z2026-09-13 08:08:10Z
git/2.39.235822026-09-05 21:49:31Z2026-09-06 01:48:58Z
git/2.53.019212026-09-05 17:14:50Z2026-09-06 00:04:12Z
git/dulwich/1.2.141812026-09-10 08:55:59Z2026-09-14 01:11:13Z
git/2.47.3812026-09-09 19:41:27Z2026-09-11 02:55:09Z

What it asked for, in the order it asked

First request to each path, oldest first, first 40 shown.

#pathat (UTC)status
1/c/pypi-registry/data/agents.json/info/refs2026-09-03 09:53:26Z404
2/c/pypi-registry/git/ai-crawler-index/info/refs2026-09-05 17:14:50Z404
3/c/rubygems-registry/git/ai-crawler-index/info/refs2026-09-05 20:28:25Z301
4/c/rubygems-registry/git/ai-crawler-index.git/info/refs2026-09-05 20:28:25Z200
5/c/rubygems-registry/git/ai-crawler-index.git/HEAD2026-09-05 20:28:25Z200
6/c/rubygems-registry/git/ai-crawler-index.git/objects/a2/6601a99dc6586c0aad10fcd09058479567541b2026-09-05 20:28:25Z404
7/c/rubygems-registry/git/ai-crawler-index.git/objects/info/http-alternates2026-09-05 20:28:25Z404
8/c/rubygems-registry/git/ai-crawler-index.git/objects/info/alternates2026-09-05 20:28:25Z404
9/c/rubygems-registry/git/ai-crawler-index.git/objects/info/packs2026-09-05 20:28:25Z200
10/c/rubygems-registry/git/ai-crawler-index.git/objects/pack/pack-940494383930e0bd45f8eec8aed1bee6943396ec.idx2026-09-05 20:28:25Z200
11/c/rubygems-registry/git/ai-crawler-index.git/objects/pack/pack-940494383930e0bd45f8eec8aed1bee6943396ec.pack2026-09-05 20:28:25Z200
12/c/rubygems-registry/git/ai-crawler-index.git/objects/03/256e336176134a64196f70054c7ca3d35aa46d2026-09-05 21:49:32Z200
13/c/rubygems-registry/git/ai-crawler-index.git/objects/ad/c49a022411c6b9fd37cfe165944b13ae795dc42026-09-05 21:49:32Z200
14/c/rubygems-registry/git/ai-crawler-index.git/objects/cb/50a2ec55f86a8f2377366bc2f07eb193d35bab2026-09-05 21:49:32Z200
15/c/rubygems-registry/git/ai-crawler-index.git/objects/62/bca7405f290a41ce2eff2b5d84977b341fd1862026-09-05 21:49:32Z200
16/c/rubygems-registry/git/ai-crawler-index.git/objects/1e/d12934b1491160583ee33e64668412904afe232026-09-05 21:49:32Z200
17/c/rubygems-registry/git/ai-crawler-index.git/objects/75/f8d4646627f190f522414667b4c8f917fd145e2026-09-05 21:49:32Z200
18/c/rubygems-registry/git/ai-crawler-index.git/objects/15/b6a9905f1fa0f3d57a905c2b4b39be5ddf02af2026-09-05 21:49:32Z200
19/c/rubygems-registry/git/ai-crawler-index.git/objects/54/ddb70dac6410ae6ddfabea8525894052f9146b2026-09-05 21:49:32Z200
20/c/rubygems-registry/git/ai-crawler-index.git/objects/6b/2fecdc1928db81db1c93a9b126a62960abac112026-09-05 21:49:32Z200
21/c/rubygems-registry/git/ai-crawler-index.git/objects/4f/de4528ae47e7479954063e309a1f76c84be6ff2026-09-05 21:49:32Z200
22/c/rubygems-registry/git/ai-crawler-index.git/objects/81/cefc7ae4fe75e9ce457026b57f5340279ff7e42026-09-05 21:49:32Z200
23/c/rubygems-registry/git/ai-crawler-index.git/objects/a4/1225471e851f0fc7f46469f73f505538be8d1e2026-09-05 21:49:32Z200
24/c/rubygems-registry/git/ai-crawler-index.git/objects/71/1daa314d6b0585ee1f7ab0ab4b8c66bdbb76a32026-09-05 21:49:32Z200
25/c/rubygems-registry/git/ai-crawler-index.git/objects/d1/901a04fe8e96d323bf2e22d7dee705188b8cf72026-09-05 21:49:32Z200
26/c/rubygems-registry/git/ai-crawler-index.git/objects/66/891f918b207b45e8c96f493ed7b61ce98066b22026-09-05 21:49:32Z200
27/c/rubygems-registry/git/ai-crawler-index.git/objects/e1/96b6128be1e9b0419bb810829b603c7455cbed2026-09-05 21:49:32Z200
28/c/rubygems-registry/git/ai-crawler-index.git/objects/28/59408d7ee3472af19f9b9c317131d30717f2942026-09-05 21:49:32Z200
29/c/rubygems-registry/git/ai-crawler-index.git/objects/7c/2501fe7b94f3ea1c8c51a779be4a232ad7c9872026-09-05 21:49:32Z200
30/c/rubygems-registry/git/ai-crawler-index.git/objects/74/948a6ad128713809771069273ae91f8a1d69ad2026-09-05 21:49:32Z200
31/c/rubygems-registry/git/ai-crawler-index.git/objects/f6/5e15bf57a66c10691748271b329ccabb5b0a632026-09-05 21:49:33Z200
32/c/rubygems-registry/git/ai-crawler-index.git/objects/26/1e8d584b03ffb0087fb823c2ab181a2029dd3c2026-09-05 21:49:33Z200
33/c/rubygems-registry/git/ai-crawler-index.git/objects/3a/ef39d3e534d331fd11b45363ea7f6222a496f12026-09-05 21:49:33Z200
34/c/rubygems-registry/git/ai-crawler-index.git/objects/39/f2a62ed666c260b9a6c2f56cc21e3a466c8f322026-09-05 21:49:33Z200
35/c/rubygems-registry/git/ai-crawler-index.git/objects/c3/94f726653371d284d43bc89a904e518496e9782026-09-05 21:49:33Z200
36/c/rubygems-registry/git/ai-crawler-index.git/objects/9a/6807609555d1787daac0a4c7859b8ee7b801932026-09-05 21:49:33Z200
37/c/rubygems-registry/git/ai-crawler-index.git/objects/e0/c2b017f3ef625d7dbe4565b41e0d74cc0fe8e32026-09-05 21:49:33Z200
38/c/rubygems-registry/git/ai-crawler-index.git/objects/f2/855d3946b1219e5be8240c10aed2e9354c9e602026-09-05 21:49:33Z200
39/c/rubygems-registry/git/ai-crawler-index.git/objects/20/c6b2e733b274a0922d0b3fb677c9023193ae3f2026-09-05 21:49:33Z200
40/c/rubygems-registry/git/ai-crawler-index.git/objects/77/5edaa42a1739c76702651cb26b91d226db3a892026-09-05 21:49:33Z200

Everything it asked for

pathrequestsstatus codesfirstlast
/c/software-heritage/git/ai-crawler-index.git/info/refs10200×102026-09-10 08:55:59Z2026-09-14 01:11:13Z
/c/pypi-registry/git/ai-crawler-index.git/HEAD9200×92026-09-06 12:08:14Z2026-09-13 08:08:03Z
/c/pypi-registry/git/ai-crawler-index.git/info/refs9200×92026-09-06 12:08:14Z2026-09-13 08:08:03Z
/c/pypi-registry/git/ai-crawler-index.git/objects/03/256e336176134a64196f70054c7ca3d35aa46d5200×52026-09-06 12:08:14Z2026-09-13 08:08:03Z
/c/pypi-registry/git/ai-crawler-index.git/objects/03/d36eed29a65b4818312404eca4b30a6c82b4b25200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/04/6e853f151d6c6ac94ad3e3eda79a74d063912c5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/04/f0b470c4f4e66f1bc5406740f8171f64e865eb5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/05/b4b6694926b2f8c24e80f95b1184421546e4985200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/06/5e12ad68ad00da1f93eca76843bca60df8313f5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/07/a10f953593f7a305ba5d73f8b09413dfed773a5200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/09/bdd2717c6a0f1c6dc8e0b6ac0be35285d82cde5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/0b/8cd036cb5aa2b01eba13b3d0b79f059814b8325200×52026-09-06 12:08:15Z2026-09-13 08:08:10Z
/c/pypi-registry/git/ai-crawler-index.git/objects/10/11a44e9d0e7e98ba4ddc8d7d010abc357686dd5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/10/7348a831bfe47254a5ee7e0413903718d01cb75200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/15/04260cd4f7cfaaa6a0d4d07261e2e5d6a44fed5200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/15/b6a9905f1fa0f3d57a905c2b4b39be5ddf02af5200×52026-09-06 12:08:14Z2026-09-13 08:08:04Z
/c/pypi-registry/git/ai-crawler-index.git/objects/18/1297ea0649fbf720db630007042e500938c3315200×52026-09-06 12:08:14Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1b/ddd887fa7bdaf87882ee1a71e264f17496a65d5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1c/4dd72da31a314dbbfad16295d3544f52c624ca5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1d/47dda493444636b525ad0f15a45babdc8f409d5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1d/f2fed4a9f3988bd039ab12a1495fc5485ec9a45200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1e/5bb42c7ea70578ae1d6a3199fbe7a289d8e5895200×52026-09-06 12:08:15Z2026-09-13 08:08:10Z
/c/pypi-registry/git/ai-crawler-index.git/objects/1e/d12934b1491160583ee33e64668412904afe235200×52026-09-06 12:08:14Z2026-09-13 08:08:04Z
/c/pypi-registry/git/ai-crawler-index.git/objects/20/c6b2e733b274a0922d0b3fb677c9023193ae3f5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/21/1e5d3d62ca232be9a3837bc118f1e04e55096e5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/21/777a3791cab52447db824021ff9527c4b18fb15200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/23/4e89c5bc335f2cb5f2a97830d0255e683f8a115200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/25/6ecf31d38be7b4644e9a5699274252791d795b5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/25/beb25a531e9785c5e3640d1026f2f5c702c4505200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/26/1e8d584b03ffb0087fb823c2ab181a2029dd3c5200×52026-09-06 12:08:14Z2026-09-13 08:08:04Z
/c/pypi-registry/git/ai-crawler-index.git/objects/26/83d13febd0a4b22e5f8798d22e916286ddcdce5200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/27/4a843d91a515d33c136974a8b07d229d76228d5200×52026-09-06 12:08:15Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/27/bb2cd457d7b4982fce1e4ed067d6290b9158a85200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/28/59408d7ee3472af19f9b9c317131d30717f2945200×52026-09-06 12:08:14Z2026-09-13 08:08:04Z
/c/pypi-registry/git/ai-crawler-index.git/objects/29/95ab98db13ebe330734a17b1e334cd9bb1933b5200×52026-09-06 12:08:15Z2026-09-13 08:08:10Z
/c/pypi-registry/git/ai-crawler-index.git/objects/2a/c96831173f92e507447c0b39c54318e11684b45200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/2b/85e5d17bbb503e7dedc65350708c41bd14e7de5200×52026-09-06 12:08:15Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/2f/ba3c6ed46bc8ea3858e0a37da6e1d47e017b375200×52026-09-06 12:08:15Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/34/35c676ce8e5cf11745b63daea99b5a56b108725200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/36/427921484a67b7906f8552dc61f8314c2119c35200×52026-09-06 12:08:15Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/36/4ab51ea5475c58deee9bae058afb6d69029ab15200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/37/8683deb0e5252f737e28d32b21efcdcb2510585200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/39/f2a62ed666c260b9a6c2f56cc21e3a466c8f325200×52026-09-06 12:08:14Z2026-09-13 08:08:04Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3a/aeae0e19045d62ca3a47fca9c2efee9e1adbcf5200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3a/ef39d3e534d331fd11b45363ea7f6222a496f15200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3c/3ff298c6e8f4bf59afa20946640b30092193165200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3c/5dc5d0d4a2505c8d44144ac9cf6410f00bcc465200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3c/68b35edadfc00c55c69787bc6d14b8122945595200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3d/d18e2e8da2738d240eb2ef8746dbf7a5db63e55200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3e/d65b2a5a8adb3c85cd6c851258cf2304fbd99b5200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/3f/826d60ad6553bf3f7e4beb01021a2fe2fcb3f55200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/41/7f81ef06329a888336b86bd494ff85aea82c3a5200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/41/adf9757b58f96aec2d7ae0161fcb5628bcefe25200×52026-09-06 12:08:14Z2026-09-13 08:08:08Z
/c/pypi-registry/git/ai-crawler-index.git/objects/42/1a18ce0f915e47dc346a18c573614832a6ca2b5200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z
/c/pypi-registry/git/ai-crawler-index.git/objects/43/b483df2ff5839fef6be6c3e2fec4b04409c5745200×52026-09-06 12:08:14Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/44/f2a0566c5f9f993dd360d567ab02425fedc4d45200×52026-09-06 12:08:15Z2026-09-13 08:08:10Z
/c/pypi-registry/git/ai-crawler-index.git/objects/47/9c2e3b6a37af493b1145d25ddb88a7c81208b55200×52026-09-06 12:08:14Z2026-09-13 08:08:06Z
/c/pypi-registry/git/ai-crawler-index.git/objects/49/23bfae9412577156825cf4e6bb3eb3f312d4cb5200×52026-09-06 12:08:15Z2026-09-13 08:08:09Z
/c/pypi-registry/git/ai-crawler-index.git/objects/4b/fe5e8e57e9b6a40af8e64860c0c6cd603e4b6f5200×52026-09-06 12:08:14Z2026-09-13 08:08:05Z
/c/pypi-registry/git/ai-crawler-index.git/objects/4d/65f8454805f86f2912973f17f61e9122aa80cc5200×52026-09-06 12:08:14Z2026-09-13 08:08:07Z

657 further paths are in the JSON.

What it asked for that did not exist

path it asked forwhat it gotfirst askedsince then
/c/pypi-registry/data/agents.json/info/refs404×12026-09-03 09:53:26Zstill absent
/c/pypi-registry/git/ai-crawler-index/info/refs404×12026-09-05 17:14:50Zstill absent
/c/rubygems-registry/git/ai-crawler-index.git/objects/a2/6601a99dc6586c0aad10fcd09058479567541b404×12026-09-05 20:28:25Zanswers 200 since 2026-09-05 21:09:00Z
/c/rubygems-registry/git/ai-crawler-index.git/objects/info/http-alternates404×12026-09-05 20:28:25Zanswers 200 since 2026-09-05 21:09:00Z
/c/rubygems-registry/git/ai-crawler-index.git/objects/info/alternates404×12026-09-05 20:28:25Zanswers 200 since 2026-09-05 21:10:08Z

What it got, and what it sent

Status codes
200×1614, 301×14, 404×5
Accept headers
*/*
Bytes served
10621985
Attributed to a channel
pypi-registry (1066), go-module-proxy (358), rubygems-registry (191), software-heritage (18)
Our instrument classed it
agent×1633 — that is our classifier's label from the user-agent, not the operator's, and it has been wrong before.

How to verify it is really them

Not observed. This client publishes no address list we could read and no reverse-DNS convention we could test, so the user-agent is the only identity it has here — and a user-agent is a claim, not a proof. Anyone can send this string.

Ask this page a question, with one GET

A question about this page, answered by a call you can make right now — no key, no account, no JSON-RPC, nothing to assemble. The query string is already filled in with this page's own subject.

curl -s 'https://www.pathwren.workers.dev/tools/classify-ua?ua=git%2F2.39.5&s=client-dossiers'

Every parameter above is a value the endpoint reads, not an address it visits: nothing is fetched on your behalf. Called without any parameter, each endpoint returns its own specification instead of an error. All of them.

What it publishes about you afterwards

Not observed. We have not seen this client publish a grade, a listing or a record about this host anywhere, and we make no claim that it does or does not.

Its own documentation

Not observed. It carries no URL and no contact address in its user-agent, so there is nowhere documented to ask what it is.

This page as data

curl -s https://www.pathwren.workers.dev/bot/git.json
curl -s https://www.pathwren.workers.dev/data/observed-clients.json   # every client, one request

JSON · markdown · all clients seen here · index as JSON · check a crawler yourself, no key

Method, and what this page will not say

Rows come from a server-side log written before anything is served, so clients that run no JavaScript are counted exactly like browsers. The window is the whole life of the log, 2026-09-03 09:53:26Z to 2026-09-14 01:11:13Z UTC, and it is stated on every number because a count without a window is not a fact. Addresses are stored as salted hashes and counted, never printed. Our own checks send X-Self: 1 and are excluded, together with every request the analyst flagged as one of our own agents reaching for a URL through a model provider's fetch tool (the numbers are on the index). Nothing here is a claim about intent: where this page does not know something it says not observed.