[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FMBG5B6PVYEG11FWHPZFHB":3,"skill-same:01M6FMBG5B6PVYEG11FWHPZFHB":85},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6FMBG5B6PVYEG11FWHPZFHB","lulu-monitor",null,"AI-powered LuLu Firewall companion for macOS. Monitors firewall alerts, analyzes connections with AI, sends Telegram notifications with Allow\u002FBlock buttons. Use when setting up LuLu integration, handling firewall callbacks, or troubleshooting LuLu Monitor issues.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"monitor","lulu monitor","issues","integration","notifications","firewall","troubleshooting","use","up","telegram","connections","alerts","Callbacks","with","block","companion","macos","2026-11-10 10:12:30",false,"---\nname: lulu-monitor\ndescription: AI-powered LuLu Firewall companion for macOS. Monitors firewall alerts, analyzes connections with AI, sends Telegram notifications with Allow\u002FBlock buttons. Use when setting up LuLu integration, handling firewall callbacks, or troubleshooting LuLu Monitor issues.\n---\n\n# LuLu Monitor\n\nAI-powered companion for [LuLu Firewall](https:\u002F\u002Fobjective-see.org\u002Fproducts\u002Flulu.html) on macOS.\n\n![LuLu Monitor Screenshot](screenshot.png)\n\n## What It Does\n\n1. Monitors LuLu firewall alert popups\n2. Extracts connection info (process, IP, port, DNS)\n3. Spawns a fast AI (haiku) to analyze the connection\n4. Sends Telegram notification with risk assessment\n5. Provides 4 action buttons: Always Allow, Allow Once, Always Block, Block Once\n6. Executes the action on LuLu when user taps a button\n\n## Auto-Execute Mode (Optional)\n\nFor reduced interruptions, enable auto-execute mode. When the AI has high confidence (known safe programs like curl, brew, node, git connecting to normal destinations), it will:\n1. Automatically execute the Allow action\n2. Still send a Telegram notification explaining what was auto-allowed\n\n**To enable:**\n```bash\n# Create config.json in install directory\ncat > ~\u002F.openclaw\u002Flulu-monitor\u002Fconfig.json \u003C\u003C 'EOF'\n{\n  \"telegramId\": \"YOUR_TELEGRAM_ID\",\n  \"autoExecute\": true,\n  \"autoExecuteAction\": \"allow-once\"\n}\nEOF\n```\n\n**Options:**\n- `autoExecute`: `false` (default) - all alerts require manual button press\n- `autoExecuteAction`: `\"allow-once\"` (default, conservative) or `\"allow\"` (permanent rule)\n\n## Installation\n\n### Prerequisites\n\nRun the check script first:\n```bash\nbash scripts\u002Fcheck-prerequisites.sh\n```\n\nRequired:\n- **LuLu Firewall**: `brew install --cask lulu`\n- **Node.js**: `brew install node`\n- **OpenClaw Gateway**: Running with Telegram channel configured\n- **Accessibility Permission**: System Settings > Privacy > Accessibility > Enable Terminal\u002Fosascript\n\n### Install\n\n```bash\nbash scripts\u002Finstall.sh\n```\n\nThis will:\n1. Clone the repo to `~\u002F.openclaw\u002Flulu-monitor\u002F`\n2. Install npm dependencies\n3. Set up launchd for auto-start\n4. Start the service\n\n### Verify\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:4441\u002Fstatus\n```\n\nShould return `{\"running\":true,...}`\n\n## Handling Callbacks\n\nWhen user clicks a Telegram button, OpenClaw receives a callback like:\n```\ncallback_data: lulu:allow\ncallback_data: lulu:allow-once\ncallback_data: lulu:block\ncallback_data: lulu:block-once\n```\n\nTo handle it, call the local endpoint:\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:4441\u002Fcallback \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"action\":\"allow\"}'  # or \"block\", \"allow-once\", \"block-once\"\n```\n\nThis will:\n1. Click the appropriate button on LuLu alert\n2. Set Rule Scope to \"endpoint\"\n3. Set Rule Duration to \"Always\" or \"Process lifetime\"\n4. Edit the Telegram message to show result\n\n## Troubleshooting\n\n### Service not running\n```bash\n# Check status\nlaunchctl list | grep lulu-monitor\n\n# View logs\ntail -f ~\u002F.openclaw\u002Flulu-monitor\u002Flogs\u002Fstdout.log\n\n# Restart\nlaunchctl unload ~\u002FLibrary\u002FLaunchAgents\u002Fcom.openclaw.lulu-monitor.plist\nlaunchctl load ~\u002FLibrary\u002FLaunchAgents\u002Fcom.openclaw.lulu-monitor.plist\n```\n\n### Accessibility permission issues\nAppleScript needs permission to control LuLu. Go to:\nSystem Settings > Privacy & Security > Accessibility\nEnable: Terminal, iTerm, or whatever terminal you use\n\n### Alert not detected\n- Ensure LuLu is running: `pgrep -x LuLu`\n- Check if alert window exists: `osascript -e 'tell application \"System Events\" to tell process \"LuLu\" to get every window'`\n\n## Uninstall\n\n```bash\nbash ~\u002F.openclaw\u002Flulu-monitor\u002Fskill\u002Fscripts\u002Funinstall.sh\n```\n","# LuLu Monitor\n\nAI-powered companion for [LuLu Firewall](https:\u002F\u002Fobjective-see.org\u002Fproducts\u002Flulu.html) on macOS.\n\n![LuLu Monitor Screenshot](screenshot.png)\n\n## What It Does\n\n1. Monitors LuLu firewall alert popups\n2. Extracts connection info (process, IP, port, DNS)\n3. Spawns a fast AI (haiku) to analyze the connection\n4. Sends Telegram notification with risk assessment\n5. Provides 4 action buttons: Always Allow, Allow Once, Always Block, Block Once\n6. Executes the action on LuLu when user taps a button\n\n## Auto-Execute Mode (Optional)\n\nFor reduced interruptions, enable auto-execute mode. When the AI has high confidence (known safe programs like curl, brew, node, git connecting to normal destinations), it will:\n1. Automatically execute the Allow action\n2. Still send a Telegram notification explaining what was auto-allowed\n\n**To enable:**\n```bash\n# Create config.json in install directory\ncat > ~\u002F.openclaw\u002Flulu-monitor\u002Fconfig.json \u003C\u003C 'EOF'\n{\n  \"telegramId\": \"YOUR_TELEGRAM_ID\",\n  \"autoExecute\": true,\n  \"autoExecuteAction\": \"allow-once\"\n}\nEOF\n```\n\n**Options:**\n- `autoExecute`: `false` (default) - all alerts require manual button press\n- `autoExecuteAction`: `\"allow-once\"` (default, conservative) or `\"allow\"` (permanent rule)\n\n## Installation\n\n### Prerequisites\n\nRun the check script first:\n```bash\nbash scripts\u002Fcheck-prerequisites.sh\n```\n\nRequired:\n- **LuLu Firewall**: `brew install --cask lulu`\n- **Node.js**: `brew install node`\n- **OpenClaw Gateway**: Running with Telegram channel configured\n- **Accessibility Permission**: System Settings > Privacy > Accessibility > Enable Terminal\u002Fosascript\n\n### Install\n\n```bash\nbash scripts\u002Finstall.sh\n```\n\nThis will:\n1. Clone the repo to `~\u002F.openclaw\u002Flulu-monitor\u002F`\n2. Install npm dependencies\n3. Set up launchd for auto-start\n4. Start the service\n\n### Verify\n\n```bash\ncurl http:\u002F\u002F127.0.0.1:4441\u002Fstatus\n```\n\nShould return `{\"running\":true,...}`\n\n## Handling Callbacks\n\nWhen user clicks a Telegram button, OpenClaw receives a callback like:\n```\ncallback_data: lulu:allow\ncallback_data: lulu:allow-once\ncallback_data: lulu:block\ncallback_data: lulu:block-once\n```\n\nTo handle it, call the local endpoint:\n```bash\ncurl -X POST http:\u002F\u002F127.0.0.1:4441\u002Fcallback \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"action\":\"allow\"}'  # or \"block\", \"allow-once\", \"block-once\"\n```\n\nThis will:\n1. Click the appropriate button on LuLu alert\n2. Set Rule Scope to \"endpoint\"\n3. Set Rule Duration to \"Always\" or \"Process lifetime\"\n4. Edit the Telegram message to show result\n\n## Troubleshooting\n\n### Service not running\n```bash\n# Check status\nlaunchctl list | grep lulu-monitor\n\n# View logs\ntail -f ~\u002F.openclaw\u002Flulu-monitor\u002Flogs\u002Fstdout.log\n\n# Restart\nlaunchctl unload ~\u002FLibrary\u002FLaunchAgents\u002Fcom.openclaw.lulu-monitor.plist\nlaunchctl load ~\u002FLibrary\u002FLaunchAgents\u002Fcom.openclaw.lulu-monitor.plist\n```\n\n### Accessibility permission issues\nAppleScript needs permission to control LuLu. Go to:\nSystem Settings > Privacy & Security > Accessibility\nEnable: Terminal, iTerm, or whatever terminal you use\n\n### Alert not detected\n- Ensure LuLu is running: `pgrep -x LuLu`\n- Check if alert window exists: `osascript -e 'tell application \"System Events\" to tell process \"LuLu\" to get every window'`\n\n## Uninstall\n\n```bash\nbash ~\u002F.openclaw\u002Flulu-monitor\u002Fskill\u002Fscripts\u002Funinstall.sh\n```\n",{"name":5,"description":7},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Feasonc13\u002Flulu-monitor",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add kbarbel640-del\u002Fskills --skill lulu-monitor",{"tool":53,"command":54},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill lulu-monitor",{"tool":56,"command":57},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill lulu-monitor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002FSKILL.md",true,[61,67,73,77,81],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"_meta.json","REFERENCE","参考文档",632,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002F_meta.json",{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"scripts\u002Fcheck-prerequisites.sh","SCRIPT","脚本",2686,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002Fscripts\u002Fcheck-prerequisites.sh",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"scripts\u002Fconfigure.sh",1289,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002Fscripts\u002Fconfigure.sh",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Finstall.sh",2869,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002Fscripts\u002Finstall.sh",{"path":82,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":83,"sourceHtmlUrl":84},"scripts\u002Funinstall.sh",946,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Feasonc13\u002Flulu-monitor\u002Fscripts\u002Funinstall.sh",[86,116,144,165,171,191],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":97,"publishedAt":35},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[98,99,100,31,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"crowd prompting","prompting","api","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":127,"publishedAt":35},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[128,100,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,104,25],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":153,"publishedAt":35},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[150],{"categoryNo":151,"categoryName":152,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000021","资料检索与研究",[154,155,156,157,158,159,160,31,161,142,25,162,100,163,164],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":166,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":35},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[169],{"categoryNo":151,"categoryName":152,"taxonomyType":125,"taxonomyTypeDesc":126},[157,156,155,154,164,159,160,31,158,142,25,161,162,100,163],{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":35},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[178,179,180,181,182,183,184,185,186,187,188,189,190],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":201,"publishedAt":35},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[197,198],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},{"categoryNo":199,"categoryName":200,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000037","律师与法务",[202,203,204,205,31,206,207,40,208,162,209,210,211,212,213,113,214,215,216],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]