Inspect helps you turn an unknown code area into a small working model.

Use it to understand what exists, how pieces connect, what repeats, where a change can spread, and which exact code should enter context next.

One useful flow:
map -> focus -> code

map: learn what exists and how it connects
focus: choose files/entities/usages that matter
code: fetch exact code needed

Choose inspect operation:

declarations in one file         file
static/dynamic imports           imports
public API                       exports
methods/properties of parent     members
exact implementation             code
outgoing deps of one entity      deps
incoming references/callers      usages
file/module connectivity         graph
compact directory layout         tree
repeated declarations/helpers    duplicates

Prefer one batch DSL request for related questions.

Batch example:

Run:
aib inspect --stdin

Input:
@file @svc/service.ts
file
file @svc/serviceB.ts
members Service
code entities=[Service.{render,reset},normalize]
code @svc/serviceC.ts ServiceC -ranges
usages target=@svc/service.ts normalize scope=src detail=loc
duplicates scope=src/scripts detail=sum limit=20

How inheritance works above:
@file sets the default file for following file-like inspect requests.
file uses @svc/service.ts.
file @svc/serviceB.ts overrides the default for that one request.
members Service uses @svc/service.ts because it has no file override.
code entities=[...] also uses @svc/service.ts.
code @svc/serviceC.ts ServiceC overrides the file and disables ranges for that request.
usages sets its own target/scope/detail because it searches references instead of reading the default file.
duplicates sets its own scope because it scans a directory.

Inspect request fields:

file      source file; first positional path, @file path, or file=path
target    file or directory to analyze; target=path
scope     where to search; scope=path or scope=[a,b]
entity    one symbol selector; entity=name or positional selector
entities  several symbol selectors; entities=[...] or positional selectors
parent    parent class/interface for methods/properties; Parent.member or parent=Name
ranges    include line/range metadata
exclude   skip paths or names depending on operation; exclude=[...]
detail    output level; detail=sum|loc|code
all       return all items; +all
limit     max items in one page; limit=N
offset    page offset; offset=N
save      save reusable artifact where supported; >name

Operation sections list their supported controls.
Specific explains controls whose meaning is local to that operation.
