Help us improve
Share bugs, ideas, or general feedback.
Auto-discovered marketplace from douglance/nib
npx claudepluginhub douglance/nibScreenshot annotation tool that bridges human visual thinking with AI comprehension
Share bugs, ideas, or general feedback.
Fast, native screenshot annotation tool with semantic visual communication.
Nib bridges human visual thinking with AI comprehension using QML (Quick Markup Language) - a semantic annotation protocol where every annotation type has defined meaning.
brew install douglance/tap/nib
Download the latest release for your platform from the Releases page.
Requires Rust 1.75+
git clone https://github.com/douglance/nib.git
cd nib
cargo build --release
Binary will be at target/release/nib.
# Capture a screen region
nib capture
# Open GUI editor
nib gui image.png
# Add annotation via CLI
nib add-annotation image.png -t rectangle -x 100 -y 100 -w 200 -H 50 -c "#ff0000"
# Render annotations onto image
nib render image.png
| Command | Description |
|---|---|
capture | Capture screen region interactively |
gui <image> | Open GUI annotation editor |
add-annotation | Add annotation headlessly |
remove-annotation | Remove annotation by ID |
clear-annotations | Remove all annotations |
render | Bake annotations into image |
read | Extract QML from annotated image |
validate | Check QML syntax validity |
find-text | OCR text search in image |
grid | Add coordinate grid overlay |
feedback | Wait for human annotation feedback (opens GUI, returns JSON) |
watch | Watch a .nib file for annotation changes |
list | List recent captures |
info | Show image and annotation details |
# 1. Capture screenshot
nib capture -o shot.png
# 2. Add annotation
nib add-annotation shot.png -t rectangle -x 100 -y 100 -w 50 -H 30 -c "#ff0000"
# Output: Added annotation [a1] rectangle at (100, 100)
# 3. Render to see result
nib render shot.png
# Output: shot.rendered.png
# 4. If wrong, remove and retry
nib remove-annotation shot.png a1
# 5. When done, clear all if needed
nib clear-annotations shot.png
Nib is designed for image-based communication. After each annotation event, the agent must inspect the image (zoom first, then full if unclear).
# Wait for human feedback (opens GUI, exits on first annotation)
nib feedback shot.png -t 120
# Zoom in around the annotation (x1,y1,x2,y2)
nib grid shot.rendered.png --region "1900,650,2300,850" -o shot.zoom.png
| Category | Types |
|---|---|
| Attention | Arrow, Star, Circle, Box, Question |
| Spatial | Squeeze, Expand, Align, Width, Height |
| Judgment | Good, Bad, Warning, Priority |
| Action | Remove, Add, Swap, Move, Duplicate |
| Content | Text, Color, Typography |
| Flow | Sequence, Connects |
# Find text in image
nib find-text image.png -s "search term"
# Highlight all detected text
nib find-text image.png --highlight --color "#ffff0080"
nib render image.png -o highlighted.png
# Visual grid for coordinate reference
nib grid image.png --spacing 100 -o grid.png
# JSON metadata output
nib grid image.png --spacing 100 --json
Nib uses .nib files - SQLite databases containing:
Annotations can also be stored as sidecar .annotations.json files for PNG/JPEG images.
MIT