carlos / platform Public

docs: carlos geo and the /geo door (geoip spec §11) [awaiting copy review]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 63da6240567cc1e4810a072e7422880a05bebae6 parent edc6a2b
1 file changed, +14 −0
  • docs/site/cli.md +14 −0

CI cancelled — superseded by a newer push — run details

diff --git a/docs/site/cli.md b/docs/site/cli.md
index 3c373b5f6..0524ec84c 100644
--- a/docs/site/cli.md
+++ b/docs/site/cli.md
@@ -1035,6 +1035,20 @@ these headers, it must credit the database `X-Carlos-Geo-Source` names:
- `GeoLite2-…`: "This product includes GeoLite2 data created by MaxMind,
available from https://www.maxmind.com"
+### carlos geo
+
+```sh
+carlos geo 81.2.69.142 --app hello
+carlos geo 81.2.69.142 --app hello --json
+```
+
+The same answer the `X-Carlos-Geo-` headers carry, for an address that is
+not the current request: one from a log, a batch job or a webhook. It prints
+the country, subdivision, point and source, and the credit the database
+requires. An address the database can't place says so. Apps call the same
+door with their instance token:
+`GET /api/cli/apps/<account>/<app>/geo?ip=<address>`, at most 60 a minute.
+
### carlos store
Object storage for an app. An account owner applies once, and a deployment