LLM API Scope (apiscope)
a tool for LLM agents to read and cache structured documents from remote.
install
use pipx for isolated installation:
pipx install llm-api-scope
how it works
apiscope has two ideas: a registered source, and a tree you navigate by address.
text is the default output; --json prints the data layer instead.
manage
apiscope add registers a source with a name, a location, and a type.
apiscope remove deletes it.
apiscope list shows what is registered, filtered by type.
a source link is registered once; a repeated link fails, even under another name or type. a private source in the home configuration uses an absolute path, and a project source uses a path relative to the project root.
five document types share one command surface:
filesystemreads a local file or directoryreporeads a directory inside a git repositoryopenapireads an OpenAPI specificationrfcreads an IETF documentllmstxtreads a site index that lists documentation pages
apiscope add docs https://example.test/docs/llms.txt --type llmstxt
apiscope add api https://github.com/example/api.git/docs@main --type repo
apiscope list all
use
apiscope sync fetches sources into a local cache.
apiscope view shows the cached structure, and apiscope read reads one node.
view and read share the same address: a source name plus an optional route.
apiscope sync all
apiscope view docs
apiscope read docs 1.2
every source projects into one tree.
an ordinary node has children; a leaf has none.
a view line is - [index] key: description, where the index is a tree address.
an index from view always works with read.
skill
apiscope skill prints or installs a combined command reference and strategy guide for AI agents.
run apiscope skill show to print it, or apiscope skill install to install it under ~/.agents/skills/apiscope.
agents read this once at onboarding instead of running --help repeatedly.
configuration
apiscope reads three configuration layers in order.
the global file is ~/.apiscope/config.json.
the project file is .apiscope/config.json, and the local file is .apiscope/local.json.
--global uses the global layer only and skips project discovery.
the public setting holds the default source ttl in days.
the local setting holds the proxy and the no_proxy bypass list.
{
"setting": {
"public": {"doc_ttl": 7},
"local": {
"proxy": "http://proxy.example.test:8080",
"no_proxy": "internal.example.test,localhost"
}
}
}
the HTTP client uses only the configured [proxy] and [no_proxy] and ignores environment proxy variables.
for repository operations, apiscope passes configured proxy settings to git and gh; when [proxy] is unset, it does not set or clear their proxy.
[no_proxy] is a comma-separated list of hosts, domains, or * that bypasses the configured proxy.
the cache lives in the app directory of the selected layer, and the rest of its rules sit under ## commands.
commands
add
register a source:
apiscope add <name> <source> --type <type> [--ttl <days>]
remove
delete a source:
apiscope remove <name>
list
list registered sources:
apiscope list <selector> [--limit <n>] [--offset <n>]
the selector is one of all, filesystem, repo, openapi, rfc, or llmstxt.
sync
fetch sources into the cache:
apiscope sync <selector> [<name>] [--force]
the selector is the same as in list, and the optional name narrows the range to one source.
a source refreshes when its cache is older than its ttl, and --force ignores the ttl.
repo clones with shallow depth, and a subpath selects files with a sparse checkout.
llmstxt reads the index page, downloads the pages it lists, and skips a failed page.
view
show the cached structure of an address:
apiscope view <address> [--depth <n>]
depth caps the levels below the scope; the default is unlimited.
read
read one node:
apiscope read <address> [<index>]
the index is optional when the address already points at a leaf.
bookmark
save a named reference and reopen it later:
apiscope bookmark add <id> <mode> <target>... --description <text>
apiscope bookmark list [<group>]
apiscope bookmark use <id>
apiscope bookmark remove <id>
apiscope bookmark prune [--invalid]
mode is file, view, read, or group; a group takes five to nine member ids. bookmarks live in a global file and a project file, and the project wins.
skill
print or install the agent skill:
apiscope skill show
apiscope skill install [<target>]
install defaults to ~/.agents/skills/apiscope.
future
- read academic papers from arxiv
- more formal document formats as the need arises
license
MIT
Metadata
Release files for llm-api-scope 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_api_scope-0.11.0.tar.gz | 75.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_api_scope-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 195.2 kB
Release files / llm_api_scope-0.11.0.tar.gz
| Download URL | llm_api_scope-0.11.0.tar.gz |
|---|---|
| Size | 75.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9293c854bcf9838bfb60a13a2271f697b1c766c7bcd795d4a584813111a5edfb
|
|
BLAKE2b-256 checksum How to use checksums |
f98bfb7988cf6317ddc29e3df56d5121b5a7d6660989ce014ae34974437b7e38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
pdm/2.29.2 CPython/3.14.8 Linux/6.17.0-1022-azure
|
Release files / llm_api_scope-0.11.0-py3-none-any.whl
| Download URL | llm_api_scope-0.11.0-py3-none-any.whl |
|---|---|
| Size | 119.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
956d014caee6ecca8a011fdbdbb78ffa39af26e934b8f1835aa7296032b2e467
|
|
BLAKE2b-256 checksum How to use checksums |
896de89033b49a53da0e32097fad901de04e7ad07b56f8f5190d1a2630123241
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
pdm/2.29.2 CPython/3.14.8 Linux/6.17.0-1022-azure
|