{"id":49898403,"url":"https://github.com/pibulus/nibnab","last_synced_at":"2026-05-16T01:37:22.767Z","repository":{"id":315048496,"uuid":"1057815904","full_name":"pibulus/nibnab","owner":"pibulus","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-07T11:32:27.000Z","size":1485,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T13:32:27.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pibulus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-16T08:42:57.000Z","updated_at":"2026-03-17T02:35:25.000Z","dependencies_parsed_at":"2025-09-17T16:31:26.907Z","dependency_job_id":null,"html_url":"https://github.com/pibulus/nibnab","commit_stats":null,"previous_names":["pibulus/nibnab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pibulus/nibnab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Fnibnab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Fnibnab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Fnibnab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Fnibnab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pibulus","download_url":"https://codeload.github.com/pibulus/nibnab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Fnibnab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33087028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-16T01:37:21.863Z","updated_at":"2026-05-16T01:37:22.762Z","avatar_url":"https://github.com/pibulus.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NibNab 🎨\n\n\u003e A highlighter for your digital life\n\u003e *Currently brewing in Bangkok ☕*\n\n![macOS](https://img.shields.io/badge/macOS-13.0+-FF69B4)\n![Swift](https://img.shields.io/badge/Swift-5.9-FFEB3B)\n![Status](https://img.shields.io/badge/status-v1.0-39FF14)\n\n## What's this?\n\nYou copy stuff all day. Links, quotes, code snippets, random thoughts. Where does it all go?\n\nNibNab sits in your menu bar and catches **everything you copy**, sorting it into four color-coded collections. No cloud, no accounts, no tracking. Just your clips, organized by vibe.\n\n## How it works\n\n1. **Copy anything** (Cmd+C or select text)\n2. **It auto-captures** to your active color\n3. **View, export, or delete** anytime\n\nThat's it. No color picker interrupting your flow. No \"should I save this?\" decisions. Just copy and it's there.\n\n## The colors mean whatever you want\n\n- **🟡 Yellow** - Maybe for inspiration?\n- **🟠 Orange** - Could be research\n- **🩷 Pink** - Perhaps quotes\n- **🟣 Purple** - Whatever feels right\n\nPick your active color, copy text, it's saved forever (or until you delete it).\n\n## Features\n\n### ✅ Smart Capture\n- Monitors Cmd+C clipboard changes\n- Auto-captures text selections (with accessibility permission)\n- Saves to your active color automatically\n- Menubar icon shows current color\n\n### ✅ Organization\n- Four highlighter colors for categorizing\n- Search across clips\n- Sort by date, app, or length\n- View full clip details\n\n### ✅ Export Options\n- **Markdown** - with metadata (app name, timestamps)\n- **Plain text** - just clips with separators\n- Save anywhere on your Mac\n\n### ✅ Settings (Right-click menubar)\n- Launch at login\n- Sound effects toggle\n- Color switching\n- About \u0026 quit\n\n### ✅ Audio Feedback (Optional)\n- Subtle chime on capture\n- Sound on delete\n- Toggle in settings menu\n\n### ✅ Privacy First\n- Everything stored locally in `~/.nibnab/`\n- Markdown files you can read/edit\n- No cloud, no sync, no tracking\n- You own your data\n\n## Install\n\n```bash\ngit clone https://github.com/pibulus/nibnab.git\ncd nibnab\n./build.sh\nopen build/NibNab.app\n```\n\nOr drag the built app to `/Applications` if you're feeling permanent about it.\n\n### First Launch\n\nNibNab will ask for:\n- **Accessibility permission** - To auto-capture selected text\n- **Just deny it if you only want Cmd+C capture**\n\nThat's it. No signup, no account, no BS.\n\n## Keyboard Shortcuts\n\n- **Cmd+Shift+V** - Toggle NibNab window\n- **Cmd+C** - Auto-captures to active color\n- **Right-click menubar** - Settings \u0026 color picker\n\n## Storage\n\nEverything lives in `~/.nibnab/` as markdown files:\n```\n~/.nibnab/\n├── highlighter yellow/\n│   └── highlighter yellow_clips.md\n├── highlighter orange/\n│   └── highlighter orange_clips.md\n├── highlighter pink/\n│   └── highlighter pink_clips.md\n└── highlighter purple/\n    └── highlighter purple_clips.md\n```\n\nNo database. No complexity. You own your data.\n\n## Why?\n\nBecause every clipboard manager is either:\n- Too complicated (I don't need 47 features)\n- Too simple (just a list? really?)\n- Too corporate (why does it need an account?)\n\nThis is the 80/20 version. Does less, does it better.\n\n## What's next? (maybe)\n\n- Screenshot snippets alongside text\n- Browser URL capture\n- Export to Obsidian/Notion\n\nBut honestly? It's pretty much done. Adding features just to add features is how good tools become bad ones.\n\n## Tech bits\n\n- **Swift/SwiftUI** - Native macOS feels better\n- **NSPopover architecture** - MenuBarExtra kept crashing\n- **No dependencies** - Just macOS 13.0+\n- **Single file** - ~1200 lines of readable Swift\n- **Local storage** - Markdown files, nothing fancy\n\n## Contributing\n\nGot ideas? Found bugs? The code is right there. PRs welcome if they keep things simple.\n\nPhilosophy: If it makes the README longer, it probably doesn't belong.\n\n## Who\n\nMade by [Pablo](https://github.com/pibulus) in Bangkok, where it's always monsoon season and the coffee is strong.\n\nPart of the anti-scale movement. This will never have:\n- A pricing page\n- A login screen\n- A \"pro\" version\n- Analytics\n- Your email address\n\n---\n\n*\"Your clipboard deserves better than Cmd+V into Notes.app\"*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpibulus%2Fnibnab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpibulus%2Fnibnab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpibulus%2Fnibnab/lists"}