Skip to main content

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.

six document types share one command surface:

  • filesystem reads a local file or directory
  • repo reads a directory inside a git repository
  • openapi reads an OpenAPI specification
  • rfc reads an IETF document
  • llmstxt reads a site index that lists documentation pages
  • arxiv reads one arXiv paper by its canonical identifier
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 add paper 1706.03762 --type arxiv
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>]

arxiv accepts a canonical identifier such as 1706.03762 or hep-th/9901001; append vN for a fixed version. URL forms are not accepted.

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, llmstxt, or arxiv.

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. arxiv prefers structured HTML, falls back to TeX source, and does not parse PDF-, PostScript-, or DVI-only submissions.

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.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llm-api-scope 0.12.0
File Size Uploaded
llm_api_scope-0.12.0.tar.gz 80.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for llm-api-scope 0.12.0
File Interpreter ABI Platform
llm_api_scope-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 208.6 kB

Release files / llm_api_scope-0.12.0.tar.gz

Download URL llm_api_scope-0.12.0.tar.gz
Size 80.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c1f87b4ac5af0f337ab96571af2b42dfe0c69412bd8e095293d4f5e077047f28
BLAKE2b-256 checksum
How to use checksums
d7c33c075671085a6104de945cac77758b05c3358f69ecb623baa5fbe3f3735b
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.12.0-py3-none-any.whl

Download URL llm_api_scope-0.12.0-py3-none-any.whl
Size 127.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b9fdd97c988d0ff25a4d0adc0c09cd9ec6c94b35e528a8b6b32f39b4b2d3494
BLAKE2b-256 checksum
How to use checksums
a75759ec1e05142c31d6aa3d3fe36a10ec2066311026aaa0209fd736c3a1cfff
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 history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page