Skip to content

AWS SQS viewer

mnml-aws-sqs is a terminal browser for AWS SQS — list every queue in a region, watch approximate message counts at a glance, drill into the focused queue’s full attributes (visibility timeout, retention period, redrive policy / DLQ wiring, etc.), yank the queue URL or ARN in one keystroke. Pairs naturally with mnml-aws-eventbridge — events fan out to SQS queues, you’ll find yourself flipping between the two. Runs standalone in any terminal.

┌─ sqs ─────────────────────────────────────────────────────────────────┐
│ ▸1.All queues (12) 2.ingest queues (4) │
└───────────────────────────────────────────────────────────────────────┘
┌─ queues (12) ─────────────────┐ ┌─ detail ────────────────────────────┐
│ ▸ events 42 msg… │ │ Name events │
│ events.fifo 0 msg · FIFO │ │ Type Standard │
│ ingest-emails 3 msg · DLQ │ │ │
│ ingest-jobs 1.2k msg…⚠│ │ Backlog │
│ … │ │ ApproxNumMessages 42 │
│ │ │ ApproxNotVisible 3 │
│ │ │ │
│ │ │ Config │
│ │ │ VisibilityTimeout 30s │
│ │ │ MessageRetention 14d │
│ │ │ ReceiveWait 20s │
│ │ │ │
│ │ │ ARN │
│ │ │ arn:aws:sqs:us-east-1:… │
└───────────────────────────────┘ └─────────────────────────────────────┘
1-9 tab · ↑↓/jk move · o console · y yank URL · Y yank ARN · r refresh · q quit
Terminal window
cargo install --git https://github.com/chris-mclennan/mnml-aws-sqs --tag v0.1.0 mnml-aws-sqs
  1. Verify the AWS CLI works. aws sqs list-queues --max-results 10 must succeed.
  2. Run once to scaffold the config: mnml-aws-sqs.
  3. Edit ~/.config/mnml-aws-sqs.toml — add your tabs.
  4. Re-run.

Pure shell-out to the aws CLI — same chain as the other AWS siblings.

# Optional top-level region:
# region = "us-east-1"
refresh_interval_secs = 60
[[tabs]]
name = "All queues"
kind = "all"
[[tabs]]
name = "ingest queues"
kind = "prefix"
prefix = "ingest-"
kindWhat it showsRequired fields
all (default)Every queue in the regionnone
prefixQueues whose name starts with prefix — useful for scoping to one app’s queues in a shared accountprefix
  • Tab strip: one tab per [[tabs]] entry, with per-tab count badge
  • Items table (left, 45%): <queue name> <visible> msg · <in-flight> in-flight [· N delayed][· FIFO][· DLQ]. Color cues:
    • Loading attributes → dim gray
    • Normal traffic → gray
    • Backlog warning (>1000 visible OR >100 in-flight) → yellow, surfaces queues falling behind at a glance
  • Detail panel (right, 55%): focused queue’s full detail, lazy-loaded on cursor move:
    • Backlog: ApproxNumMessages / ApproxNotVisible / ApproxDelayed (only shown when nonzero)
    • Config: VisibilityTimeout, MessageRetention, DelaySeconds, ReceiveWait, MaxMessageSize, Created, LastModified — all durations humanised (60s1m, 120960014d)
    • Redrive policy (DLQ): raw JSON when present — shows what DLQ + max-receive-count are configured
    • ARN: at the bottom for copy reference

Attributes are fetched lazily — only the focused queue pays the per-queue get-queue-attributes cost. An account with hundreds of queues opens fast.

ChordAction
1-9Switch to that tab
Tab / BackTabCycle tabs
/ k, / jMove selection — also triggers attribute fetch for the new focus
PgUp / PgDnJump 10 rows
g / GTop / bottom
Enter / oOpen SQS v3 console for the focused queue
yYank queue URL — the input to aws sqs send-message --queue-url $(pbpaste)
YYank queue ARN (only after attributes have loaded)
rRefresh active tab (re-runs list-queues + refreshes focused attributes)
q / Esc / Ctrl+CQuit

The URL yank is what you’ll use most — it’s the input shape for the aws sqs send-message / receive-message / purge-queue commands.

Terminal window
mnml-aws-sqs
:term mnml-aws-sqs

mnml-aws-sqs ships as a default chip in mnml’s rail under INTEGRATIONS. Bound to <leader>i q in the whichkey leader menu (vim mode), or palette-runnable as forge.open_sqs.

v0.1 — queue list (paginated, all and prefix tab kinds), lazy per-queue attribute fetch, full detail panel with backlog / config / redrive-policy / ARN, console open, URL yank, ARN yank, backlog-warning color cue.

Held back for v0.2+:

  • DLQ correlation — mark queues that are referenced as the DLQ for another queue (currently we only mark queues that have a DLQ via RedrivePolicy)
  • Message peek (receive-message with VisibilityTimeout=0) for the focused queue
  • Purge queue action with confirm prompt
  • Cross-sibling handoff from mnml-aws-eventbridge — pick a target SQS queue, jump straight here
  • Send-test-message action

github.com/chris-mclennan/mnml-aws-sqs. MIT.