Guide / Browsers

Browsers

Two resources hold data rather than configuration: an S3 bucket and a DynamoDB table. Each gets a browser that opens inside the detail pane, takes over the keymap while open, and closes with Esc. Z makes it full-width; ? shows its keys.

S3 object browser (o)

o on a bucket opens a file-manager view of it. Folders are the bucket’s /-delimited prefixes; Enter descends, h goes up a level, and / filters the current listing as you type.

KeyAction
Enter / lOpen a folder · preview an object
h / Up one level
/Filter the current listing
fRecursive: every object under this prefix, flat
VVersion history: every version, including the delete markers a normal listing hides
s / SCycle the sort column / flip the direction
nLoad the next page
iObject metadata panel: size, type, storage class, encryption and KMS key, ETag, user metadata. Tab focuses it, y copies a value, Y copies all
vView the object as text (the head of a large file)
eOpen the object in $EDITOR (up to 1 MiB)
dDownload the object into the working directory
pCopy a presigned GET URL, valid for one hour
yCopy the s3:// URI
BBookmark this object; restoring it reopens the browser at the same key
tOpen a .tfstate in the Terraform state viewer (below)

Version mode is the one to reach for when “the object is gone”: a deleted key is simply absent from a normal listing, but its versions and the delete marker on top are still there, and v, e, d and p all act on the selected version.

The browser makes read calls only: ListObjectsV2, ListObjectVersions, HeadObject and GetObject. A presigned URL is signed locally with your own credentials and is never sent anywhere.

Terraform state viewer

Select a .tfstate (or .tfstate.backup) object in the browser and press t. neboto fetches and parses it, closes the browser, and shows a Terraform State pane: the state version, serial and Terraform version in the header, then one row per resource instance grouped by module, with the Terraform address on the left and the real ARN or id on the right.

root  ·  12 resources

  aws_vpc.main                          vpc-0a1b2c3d4e5f60718        →
  aws_nat_gateway.this[0]               nat-0f9e8d7c6b5a49382        →
  aws_iam_role.app                      arn:aws:iam::123456789012:role/app  →

module.db  ·  3 resources

  aws_db_instance.primary               db-ABCDEFGHIJKLMNOPQRSTUVWXYZ  →

Enter on a row jumps to that resource through the same link-following as any other detail row, across services and regions. That is the point of the viewer: from a state file to the live resource without copying an id into a search box. y copies a row, Esc closes the pane.

count and for_each instances get one row each with their index ([0], ["blue"]), data sources read data.aws_ami.ubuntu, and the pane ends with a per-provider count and the state’s outputs. Nothing is written anywhere: the state is read once with GetObject, parsed in memory, and dropped when the pane closes.

DynamoDB item browser (i)

i on a table opens a query form above a result grid. The default is a Scan: press Enter to list items, n for the next page. Switch Mode to Query, set PK to a partition-key value and optionally an Op and SK (begins_with 2024-, > 100) to query by key; switch Index to a GSI or LSI to query its keys instead. A Filter applies to either mode: status=active for equality, email~@example.com for contains.

Tab moves between fields, / change a choice, moves into the results, and Enter on a row shows the full item as JSON. Pages are 50 items; nothing is fetched until you run.

The same key opens a session browser on a Bedrock AgentCore memory store: actors, their sessions, and the events within, with t switching to the store’s long-term records.