Loading...
Loading...
Visual feedback from humans via screenshot annotations. Use this skill CONSTANTLY — any time you need visual context, want to verify UI changes, need to confirm layout, debug a visual issue, check styling, validate a design, or show your work. Capture the screen, look at it, figure out what you need feedback on, annotate it, and ask. Do not ask the user what to capture — just capture and look.
npx skill4agent add douglance/nib nib1. Find the right window → nib windows --json
2. Capture it → nib capture --app "AppName" -o /tmp/nib_shot.png
3. Look at the screenshot (read the file)
4. Decide what you need feedback on
5. nib feedback /tmp/nib_shot.png -a '[annotations]' -m "question"
6. Parse the human's response
7. Act on it# List all windows with metadata
nib windows --json
# Filter by app name
nib windows --app "Safari" --json# Capture a specific app's window
nib capture --app "Safari" -o /tmp/nib_shot.png
# Capture by window title
nib capture --title "index.html" -o /tmp/nib_shot.png
# Capture the focused window
nib capture --mode window -o /tmp/nib_shot.png
# Capture full screen (fallback)
nib capture -o /tmp/nib_shot.png--app--title# Coordinate grid for positioning
nib grid /tmp/nib_shot.png --spacing 100 -o /tmp/nib_grid.png
# Find text via OCR
nib find-text /tmp/nib_shot.png -s "Submit"nib feedback /tmp/nib_shot.png \
-a '[{"type":"arrow","from":[300,200],"to":[450,350]},{"type":"text","at":[300,180],"content":"This spacing looks off?"}]' \
-m "Does the spacing between these elements look right?"{"annotations": [{"id": "a1", "type": "arrow", "at": [150, 200, 300, 100], "owner": "human"}]}{"event": "timeout"}[
{"type": "arrow", "from": [x, y], "to": [x, y]},
{"type": "rectangle", "at": [x, y], "size": [w, h]},
{"type": "text", "at": [x, y], "content": "Label"},
{"type": "highlight", "at": [x, y], "size": [w, h], "color": "#ffff0080"},
{"type": "number", "at": [x, y], "value": 1},
{"type": "ellipse", "center": [x, y], "radius": [rx, ry]},
{"type": "line", "from": [x, y], "to": [x, y]},
{"type": "blur", "at": [x, y], "size": [w, h]}
]"color"#3b82f6nib annotation add image.png -t rectangle -x 100 -y 100 -w 200 -H 50 -c "#ff0000"
nib render image.png # → image.rendered.png| Command | Flag | Purpose |
|---|---|---|
| | Capture specific app's window |
| | Capture window by title substring |
| | Capture focused window |
| | Filter window list by app name |
| | Machine-readable window list |
| | JSON annotations array |
| | Message/question as toast |
| | Timeout in seconds (default 60) |
| | Search string |
| | Auto-highlight matches (NOT |
| | Grid cell size in pixels |
| | Zoom to region (x1,y1,x2,y2) |