{"id":44923372,"url":"https://github.com/princezuda/safeclaw","last_synced_at":"2026-03-12T08:49:28.986Z","repository":{"id":336132179,"uuid":"1148395300","full_name":"princezuda/safeclaw","owner":"princezuda","description":"Safeclaw is the alternative to openclaw.. You can naturally chat with it via text and voice, yet there is no language model., it picks up on intent and semantics. No prompt injection while you get over ninety percent of what openclaw does plus tts and voice to text  ","archived":false,"fork":false,"pushed_at":"2026-02-18T03:01:50.000Z","size":196,"stargazers_count":54,"open_issues_count":1,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-18T06:57:48.112Z","etag":null,"topics":["agentic-ai","ai","ai-agent","ai-assistant","ai-tools","openclaw","safe","safeai"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/princezuda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2026-02-02T23:11:15.000Z","updated_at":"2026-02-17T22:35:13.000Z","dependencies_parsed_at":"2026-02-18T04:04:50.753Z","dependency_job_id":null,"html_url":"https://github.com/princezuda/safeclaw","commit_stats":null,"previous_names":["princezuda/safeclaw"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/princezuda/safeclaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princezuda%2Fsafeclaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princezuda%2Fsafeclaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princezuda%2Fsafeclaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princezuda%2Fsafeclaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/princezuda","download_url":"https://codeload.github.com/princezuda/safeclaw/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/princezuda%2Fsafeclaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29812622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T05:36:42.804Z","status":"ssl_error","status_checked_at":"2026-02-25T05:36:31.934Z","response_time":61,"last_error":"SSL_read: 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":["agentic-ai","ai","ai-agent","ai-assistant","ai-tools","openclaw","safe","safeai"],"created_at":"2026-02-18T04:00:50.223Z","updated_at":"2026-03-12T08:49:28.878Z","avatar_url":"https://github.com/princezuda.png","language":"Python","funding_links":[],"categories":["Main Projects","Lightweight Alternatives \u0026 Forks","Uncategorized","Python"],"sub_categories":["Uncategorized"],"readme":"# SafeClaw 🐾\r\n\r\n**The zero-cost alternative to OpenClaw. No LLM. No API bills. No prompt injection. Runs on any machine.**\r\n\r\n\u003e **100 STARS** — We hit one hundred stars on GitHub! This milestone brings: **Fuzzy Learning \u0026 Personalization.** Writing style profiling that learns how you write, a research pipeline with two-phase gather-then-analyze workflow, a coding toolbox with 7 templates and offline utilities, auto-blog scheduling with cron, and a task-aware prompt builder. All new features work offline with zero LLM cost — AI is optional for deep analysis. [See the new features below.](#-writing-style-profiler) Previous milestone: [Blogging — two modes.](#blogging-guide) Next milestone: **250 stars** 🤯\r\n\r\nWhile OpenClaw users are burning [$200/day](https://www.notebookcheck.net/Free-to-use-AI-tool-can-burn-through-hundreds-of-Dollars-per-day-OpenClaw-has-absurdly-high-token-use.1219925.0.html) and [$3,600/month](https://dev.to/thegdsks/i-tried-the-free-ai-agent-with-124k-github-stars-heres-my-500-reality-check-2885) on API tokens, SafeClaw delivers 90% of the functionality using traditional programming — rule-based parsing, ML pipelines, and local-first tools. **Your API bill: $0. Forever.**\r\n\r\nSafeClaw uses VADER, spaCy, sumy, YOLO, Whisper, Piper, and other battle-tested ML techniques instead of generative AI. The result: deterministic, predictable, private, and completely free to run.\r\n\r\n---\r\n\r\n## Why SafeClaw?\r\n\r\n| | SafeClaw | OpenClaw |\r\n|---|---|---|\r\n| **Monthly cost** | **$0** | $100–$3,600+ |\r\n| **Requires LLM** | No (optional for AI blog) | Yes |\r\n| **Prompt injection risk** | **None** | Yes |\r\n| **Works offline** | **Yes** (core features) | No |\r\n| **Runs on any machine** | **Yes** (Linux, macOS, Windows) | Needs powerful hardware or cloud APIs |\r\n| **Deterministic output** | **Yes** | No (LLM responses vary) |\r\n| **Privacy** | **Local by default** (external only when you ask, e.g. weather) | Data sent to API providers |\r\n\r\n---\r\n\r\n## Features\r\n\r\n### 🗣️ Voice Control\r\n* **Speech-to-Text** — Whisper STT runs locally, no cloud transcription\r\n* **Text-to-Speech** — Piper TTS for natural voice output, completely offline\r\n* **Voice-first workflow** — Talk to SafeClaw like you would any assistant\r\n\r\n### 🏠 Smart Home \u0026 Device Control\r\n* **Smart home integration** — Control your connected devices\r\n* **Bluetooth device control** — Discover and manage Bluetooth devices\r\n* **Network scanning** — Device discovery on your local network\r\n\r\n### 📱 Social Media Intelligence\r\n* **Twitter/X summarization** — Add accounts, get summaries of their activity\r\n* **Mastodon summarization** — Follow and summarize fediverse accounts\r\n* **Bluesky summarization** — Track and summarize Bluesky feeds\r\n* No API tokens needed for public content\r\n\r\n### 📰 RSS News Aggregation\r\n* **50+ preset feeds** — Hacker News, Ars Technica, BBC, Reuters, Nature, and more\r\n* **8 categories** — Tech, World, Science, Business, Programming, Security, Linux, AI\r\n* **Custom feeds** — Import any RSS/Atom feed\r\n* **Auto-summarization** — Extractive summaries with sumy (no AI)\r\n* **Per-user preferences** — Customize your news sources\r\n\r\n### 🔒 Privacy First\r\n* **Self-hosted by default** — Your data stays local unless you explicitly request external info (like weather)\r\n* **No API keys required** — Core features work completely offline\r\n* **No cloud AI dependencies** — No tokens sent to OpenAI, Anthropic, or Google\r\n* **No prompt injection** — No LLM means no injection attacks\r\n\r\n### 📡 Multi-Channel\r\n* **CLI** — Interactive command line with Rich formatting\r\n* **Telegram** — Full bot integration\r\n* **Discord** — Coming soon\r\n* **Slack** — Coming soon\r\n* **Webhooks** — Inbound and outbound support\r\n\r\n### ⚡ Automation\r\n* **Command chaining** — Combine actions naturally: \"read my email and remind me at 3pm\"\r\n* **Web crawling** — Async crawling with depth limits and domain filtering\r\n* **Summarization** — LexRank, TextRank, LSA, Luhn algorithms\r\n* **Reminders** — Natural language time parsing with dateparser\r\n* **Shell commands** — Sandboxed command execution\r\n* **File operations** — Search, list, read files\r\n* **Cron jobs** — Scheduled task automation\r\n* **Daily briefings** — Weather, reminders, news from your feeds\r\n\r\n### 📊 Text Analysis\r\n* **VADER Sentiment** — Lexicon-based sentiment analysis\r\n* **Keyword Extraction** — TF-IDF style extraction\r\n* **Readability Scoring** — Flesch-Kincaid metrics\r\n\r\n### 📧 Email Integration\r\n* **IMAP Support** — Read emails from Gmail, Outlook, Yahoo\r\n* **SMTP Support** — Send emails\r\n* **Standard protocols** — No API keys required\r\n\r\n### 📅 Calendar Support\r\n* **ICS Files** — Import and parse .ics calendar files\r\n* **CalDAV** — Connect to Google Calendar, iCloud (optional)\r\n* **Event filtering** — Today, upcoming, by date range\r\n\r\n### 📄 Document Reading\r\n* **PDF** — Text extraction with PyMuPDF\r\n* **DOCX** — Microsoft Word documents\r\n* **HTML/Markdown/TXT** — Plain text formats\r\n\r\n### 🔔 Notifications\r\n* **Desktop notifications** — Cross-platform (macOS, Windows, Linux)\r\n* **Priority levels** — Low, normal, high, urgent\r\n* **Rate limiting** — Prevent notification spam\r\n\r\n### 👁️ Optional ML Features\r\n* **NLP** — spaCy named entity recognition (~50MB)\r\n* **Vision** — YOLO object detection + OCR (~2GB)\r\n* **OCR** — Tesseract text extraction from images (lightweight)\r\n\r\n### ✍️ Writing Style Profiler\r\n* **Learn your voice** — Feed SafeClaw your writing and it builds a 35-metric profile (sentence length, vocabulary, formality, contractions, structure, favorite words, etc.)\r\n* **Persistent memory** — Your profile is stored in SQLite and improves with every sample\r\n* **LLM prompt generation** — Profile converts to writing style instructions for any LLM provider\r\n* **No AI required** — All analysis uses NLTK, VADER, and statistical methods locally\r\n\r\n### 🔬 Research Pipeline\r\n* **Two-phase workflow** — Phase 1 gathers and summarizes sources (no LLM, $0). Phase 2 does optional LLM deep analysis\r\n* **Source gathering** — Searches RSS feeds and crawls URLs, auto-summarizes with Sumy\r\n* **Source selection** — You pick which sources matter before spending any tokens\r\n* **Deep analysis** — Optional LLM analyzes selected sources with structured output\r\n\r\n### 💻 Coding Toolbox\r\n* **7 templates** — python-script, python-class, python-test, fastapi-endpoint, html-page, dockerfile, github-action\r\n* **Code stats** — Lines of code by language for any directory\r\n* **Regex tester** — Test and explain regex patterns with match highlighting\r\n* **Code search** — Regex search across code files\r\n* **File diff** — Compare two files side by side\r\n* **LLM-powered (optional)** — Generate, explain, review, refactor, document code\r\n\r\n### 📅 Auto Blog Scheduler\r\n* **Cron scheduling** — Schedule recurring blog generation with cron expressions\r\n* **Source categories** — Pull from specific RSS categories automatically\r\n* **Async-safe** — Detects scheduler type mismatches and warns clearly instead of silently failing\r\n\r\n### 🧠 Smart Prompt Builder\r\n* **Task-aware prompts** — Generates optimized prompts for blog, research, and coding tasks\r\n* **Writing profile integration** — Automatically injects your writing style into blog prompts\r\n* **Provider routing** — Each task type can use a different LLM provider\r\n* **Flow diagram** — `show me the flow` displays the full architecture as ASCII art\r\n\r\n### 🥚 Easter Eggs\r\n* Built-in personality and hidden surprises — because tools should be fun\r\n\r\n### 📝 Blogging — Two Modes\r\n\r\n**Deterministic Blog (No AI, No Cost):**\r\n* **Write blog news** — Add entries with natural language: \"write blog news We shipped faster crawling today.\"\r\n* **Crawl sites for content** — \"crawl https://example.com for title content\", \"crawl example.com for body content\"\r\n* **Auto-generated titles** — Extractive summarization picks the most representative content as your headline. No LLM, just math.\r\n* **Plain .txt output** — Your blog is a simple text file you can share anywhere\r\n\r\n**AI Blog (Optional, Multi-Provider):**\r\n* **Generate full posts from a topic** — \"ai blog generate about sustainable technology\"\r\n* **Rewrite, expand, polish** — \"ai rewrite blog\", \"ai expand blog\"\r\n* **AI headlines and SEO** — \"ai headlines\", \"ai blog seo\"\r\n* **11 providers** — 5 local (Ollama, LM Studio, llama.cpp, LocalAI, Jan) + 6 cloud (OpenAI, Anthropic, Google, Mistral, Groq, custom)\r\n* **Local AI = free + private** — Run Ollama or LM Studio and pay nothing\r\n\r\n**Multi-Platform Publishing:**\r\n* **WordPress** — REST API v2 with Application Passwords, JWT, or Basic Auth\r\n* **Joomla** — Web Services API (Joomla 4+)\r\n* **SFTP** — Upload HTML to any server\r\n* **Generic API** — POST JSON to any endpoint\r\n* **Front page management** — Set which post is the home page on any target\r\n\r\n---\r\n\r\n## Full Comparison: SafeClaw vs OpenClaw\r\n\r\n| Feature | SafeClaw | OpenClaw |\r\n|---|---|---|\r\n| Self-hosted | ✅ | ✅ |\r\n| Cross-platform (Linux, macOS, Windows) | ✅ | ✅ |\r\n| No AI/LLM required | ✅ | ❌ |\r\n| Offline capable | ✅ | ❌ |\r\n| Zero API cost | ✅ | ❌ |\r\n| No prompt injection | ✅ | ❌ |\r\n| Privacy-first | ✅ (local by default) | ✅ |\r\n| Voice (STT/TTS) | ✅ (Whisper + Piper, local) | ✅ (ElevenLabs, paid API) |\r\n| Smart home control | ✅ | ✅ (via skills) |\r\n| Bluetooth control | ✅ | ❌ |\r\n| Network scanning | ✅ | ❌ |\r\n| Social media summaries | ✅ (Twitter, Mastodon, Bluesky) | ❌ (requires separate skills) |\r\n| Multi-channel | ✅ (CLI, Telegram, Webhooks) | ✅ (13+ platforms) |\r\n| Web crawling | ✅ | ✅ |\r\n| Summarization | ✅ (extractive) | ✅ (AI-generated) |\r\n| RSS/News feeds | ✅ (50+ feeds) | ✅ (via skills) |\r\n| Sentiment analysis | ✅ (VADER) | ✅ (AI) |\r\n| Email integration | ✅ | ✅ |\r\n| Calendar support | ✅ | ✅ |\r\n| Document reading | ✅ | ✅ |\r\n| Desktop notifications | ✅ | ✅ |\r\n| Object detection | ✅ (YOLO) | ❌ |\r\n| OCR | ✅ (Tesseract) | ❌ |\r\n| Cron jobs | ✅ | ✅ |\r\n| Webhooks | ✅ | ✅ |\r\n| Plugin system | ✅ | ✅ (5,700+ skills) |\r\n| Free-form chat | ❌ | ✅ |\r\n| Creative writing | ❌ | ✅ |\r\n| Blog (no LLM) | ✅ (extractive titles) | ❌ (requires AI) |\r\n| Blog (AI-powered) | ✅ (optional, 11 providers) | ✅ |\r\n| Blog publishing (WordPress, Joomla, SFTP) | ✅ | ❌ (requires plugins) |\r\n| Writing style learning | ✅ (statistical profiling) | ❌ |\r\n| Research pipeline | ✅ (two-phase, LLM optional) | ✅ (AI only) |\r\n| Code templates \u0026 tools | ✅ (7 templates, offline utils) | ❌ (requires AI) |\r\n| Auto-blog scheduling | ✅ (cron-based) | ❌ |\r\n| Task-aware prompts | ✅ (per-task LLM routing) | ✅ |\r\n| Command chaining | ✅ (\"read email and remind me at 3pm\") | ✅ |\r\n| Autonomous multi-step tasks | ❌ | ✅ |\r\n| Self-writing skills | ❌ | ✅ |\r\n| Browser automation | ❌ | ✅ |\r\n\r\n---\r\n\r\n## Installation\r\n\r\n### Using pipx (recommended)\r\n\r\n```bash\r\n# Install pipx if needed\r\n# Linux:\r\nsudo apt install pipx\r\n# macOS:\r\nbrew install pipx\r\n\r\npipx ensurepath\r\n\r\n# Install SafeClaw\r\npipx install safeclaw\r\n```\r\n\r\n### Using pip with virtual environment\r\n\r\n```bash\r\n# Create and activate venv\r\npython3 -m venv ~/.safeclaw-venv\r\nsource ~/.safeclaw-venv/bin/activate\r\n\r\n# Install SafeClaw\r\npip install safeclaw\r\n```\r\n\r\n### From source\r\n\r\n```bash\r\ngit clone https://github.com/princezuda/safeclaw.git\r\ncd safeclaw\r\npip install -e .\r\n```\r\n\r\n### Optional ML Features\r\n\r\n```bash\r\n# NLP - spaCy named entity recognition (~50MB)\r\npip install safeclaw[nlp]\r\n\r\n# Vision - YOLO object detection + OCR (~2GB, requires PyTorch)\r\npip install safeclaw[vision]\r\n\r\n# OCR only - text extraction from images (lightweight, requires Tesseract)\r\npip install safeclaw[ocr]\r\n\r\n# All ML features\r\npip install safeclaw[ml]\r\n```\r\n\r\n**Requirements:** Python 3.11+, ~50MB disk (base), ~2GB additional for vision features. Runs on Linux, macOS, and Windows.\r\n\r\n---\r\n\r\n## Quick Start\r\n\r\n```bash\r\n# Start interactive mode\r\nsafeclaw\r\n\r\n# Or with verbose logging\r\nsafeclaw --verbose\r\n```\r\n\r\n### Example Commands\r\n\r\n```\r\n\u003e news                              # Get headlines from enabled feeds\r\n\u003e news tech                         # Get tech news only\r\n\u003e news categories                   # See all available categories\r\n\u003e news enable science               # Enable science feeds\r\n\u003e add feed https://blog.example.com/rss  # Add custom feed\r\n\u003e summarize https://news.ycombinator.com\r\n\u003e crawl https://example.com\r\n\u003e remind me to call mom tomorrow at 3pm\r\n\u003e morning briefing                  # Includes news from your feeds!\r\n\u003e check my email                    # View inbox (requires setup)\r\n\u003e read my email and remind me at 3pm # Chain commands naturally\r\n\u003e calendar today                    # Today's events from .ics\r\n\u003e analyze sentiment of this text    # VADER sentiment analysis\r\n\u003e read document.pdf                 # Extract text from documents\r\n\u003e write blog news We shipped a new feature today.  # Blog entry (no AI)\r\n\u003e crawl https://example.com for title content      # Crawl for blog\r\n\u003e blog title                        # Generate title from entries\r\n\u003e publish blog                      # Save blog as .txt\r\n\u003e blog                              # Interactive blog menu (AI or manual)\r\n\u003e ai blog generate about home automation            # AI writes a full post\r\n\u003e ai rewrite blog                   # AI polishes your draft\r\n\u003e publish blog to my-wordpress      # Publish to WordPress\r\n\u003e style learn I write concise, punchy posts.        # Teach SafeClaw your style\r\n\u003e style profile                     # View your writing profile\r\n\u003e research WebAssembly performance  # Gather sources (no LLM)\r\n\u003e research select 1,2,3             # Pick sources to analyze\r\n\u003e code template python-class UserAuth Auth handler  # Generate boilerplate\r\n\u003e code templates                    # List all 7 templates\r\n\u003e code stats src/                   # Lines of code by language\r\n\u003e code regex \\d{3}-\\d{4} test 555-1234  # Test regex\r\n\u003e auto blog list                    # View scheduled auto-blogs\r\n\u003e show me the flow                  # Architecture diagram\r\n\u003e help\r\n```\r\n\r\n### CLI Commands\r\n\r\n```bash\r\n# News\r\nsafeclaw news                       # Headlines from enabled categories\r\nsafeclaw news tech                  # Tech news only\r\nsafeclaw news --categories          # List all categories\r\nsafeclaw news world -n 20           # 20 world news headlines\r\nsafeclaw news --add https://blog.example.com/rss --name \"My Blog\"\r\nsafeclaw news -s                    # With auto-summarization\r\n\r\n# Summarize\r\nsafeclaw summarize https://example.com/article -n 5\r\n\r\n# Crawl\r\nsafeclaw crawl https://example.com --depth 2\r\n\r\n# Text analysis\r\nsafeclaw analyze \"This product is amazing! I love it.\"\r\nsafeclaw analyze document.txt --no-readability\r\n\r\n# Documents\r\nsafeclaw document report.pdf\r\nsafeclaw document paper.docx --summarize -n 5\r\nsafeclaw document notes.md --output extracted.txt\r\n\r\n# Calendar\r\nsafeclaw calendar import --file calendar.ics\r\nsafeclaw calendar today\r\nsafeclaw calendar upcoming --days 14\r\n\r\n# Blog — Deterministic (no AI)\r\nsafeclaw blog help                 # Blog feature guide\r\nsafeclaw blog write \"New crawling features shipped today.\"\r\nsafeclaw blog show                 # View draft and published posts\r\nsafeclaw blog title                # Generate title from entries\r\nsafeclaw blog publish              # Save blog as .txt\r\nsafeclaw blog publish \"My Custom Title\"  # Publish with custom title\r\n\r\n# Blog — AI-powered (requires ai_providers in config)\r\nsafeclaw blog                      # Interactive menu (AI or manual)\r\n# ai blog generate about \u003ctopic\u003e   # AI writes a full blog post\r\n# ai rewrite blog                  # AI polishes your draft\r\n# ai expand blog                   # AI makes it longer\r\n# ai headlines                     # AI generates headline options\r\n# ai blog seo                      # AI generates SEO metadata\r\n\r\n# Publishing (requires publish_targets in config)\r\n# publish blog to my-wordpress     # Publish to a specific target\r\n# publish blog to all              # Publish to all targets\r\n# set front page 123 on my-wp     # Set home page on a target\r\n\r\n# Writing Style\r\nsafeclaw style learn \"I write short, punchy sentences. No fluff.\"\r\nsafeclaw style profile             # View your writing profile\r\n\r\n# Research\r\nsafeclaw research \"WebAssembly performance\"  # Gather sources\r\nsafeclaw research sources          # View gathered sources\r\nsafeclaw research select 1,2,3     # Pick sources for deep analysis\r\nsafeclaw research analyze          # LLM deep dive (optional)\r\n\r\n# Coding Toolbox\r\nsafeclaw code templates            # List available templates\r\nsafeclaw code template python-class UserAuth \"Auth handler\"\r\nsafeclaw code stats src/           # Lines of code by language\r\nsafeclaw code search \"TODO\" src/   # Regex search code files\r\nsafeclaw code regex \"\\d{3}-\\d{4}\" test \"555-1234\"\r\nsafeclaw code diff file1.py file2.py\r\n\r\n# Auto Blog\r\nsafeclaw auto blog setup           # Interactive setup wizard\r\nsafeclaw auto blog list            # View scheduled auto-blogs\r\nsafeclaw auto blog remove my-blog  # Remove a schedule\r\n\r\n# Flow\r\nsafeclaw flow                      # Architecture diagram\r\n\r\n# Webhooks\r\nsafeclaw webhook --port 8765\r\n\r\n# Initialize config\r\nsafeclaw init\r\n```\r\n\r\n---\r\n\r\n## Configuration\r\n\r\nSafeClaw looks for configuration in `config/config.yaml`:\r\n\r\n```yaml\r\nsafeclaw:\r\n  name: \"SafeClaw\"\r\n  language: \"en\"\r\n  timezone: \"UTC\"\r\n\r\nchannels:\r\n  cli:\r\n    enabled: true\r\n  webhook:\r\n    enabled: true\r\n    port: 8765\r\n  telegram:\r\n    enabled: false\r\n    token: \"YOUR_BOT_TOKEN\"\r\n\r\nactions:\r\n  shell:\r\n    enabled: true\r\n    sandboxed: true\r\n    timeout: 30\r\n  files:\r\n    enabled: true\r\n    allowed_paths:\r\n      - \"~\"\r\n```\r\n\r\n---\r\n\r\n## Writing Style \u0026 Research Guide\r\n\r\n### Writing Style Profiler\r\n\r\nSafeClaw learns how you write by analyzing text samples. It builds a statistical profile — no AI needed.\r\n\r\n```\r\n\u003e style learn I've been thinking about this for a while. The tech industry\r\n  loves to overcomplicate things. Simple solutions work better.\r\n  Profile updated (1 sample analyzed).\r\n\r\n\u003e style learn Here's what I learned from shipping 50 side projects: most\r\n  of them failed. And that's completely fine!\r\n  Profile updated (2 samples analyzed).\r\n\r\n\u003e style profile\r\n  Writing Style Profile (2 samples analyzed)\r\n  Tone: casual, neutral\r\n  Avg sentence: 7 words\r\n  Vocabulary: advanced (richness: 72%)\r\n  Structure: conversational\r\n  Uses contractions, first person, em-dashes\r\n  Favorite words: easier, simple, something, learn\r\n```\r\n\r\nYour profile persists across sessions and automatically shapes AI blog prompts so generated posts sound like you.\r\n\r\n**Commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `style learn \u003ctext\u003e` | Feed SafeClaw a writing sample |\r\n| `style profile` | View your current writing profile |\r\n\r\n### Research Pipeline\r\n\r\nTwo-phase research: gather first (free), then optionally analyze with AI.\r\n\r\n```\r\n\u003e research WebAssembly performance\r\n  Found 8 sources. Use 'research sources' to view.\r\n\r\n\u003e research sources\r\n  1. [HN] WebAssembly 2.0 Performance Benchmarks (4 sentences)\r\n  2. [RSS] Wasm vs Native: A Deep Dive (3 sentences)\r\n  ...\r\n\r\n\u003e research select 1,2,5\r\n  Selected 3 sources for deep analysis.\r\n\r\n\u003e research analyze\r\n  [LLM analyzes your selected sources with structured output]\r\n```\r\n\r\n**Commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `research \u003ctopic\u003e` | Search feeds \u0026 crawl for sources (no LLM) |\r\n| `research url \u003curl\u003e` | Add a specific URL as a source |\r\n| `research sources` | View gathered sources with summaries |\r\n| `research select 1,2,3` | Pick sources for deep analysis |\r\n| `research analyze` | LLM deep dive on selected sources |\r\n| `research results` | View analysis results |\r\n| `research help` | Show all research commands |\r\n\r\n### Coding Toolbox\r\n\r\nOffline coding utilities plus optional LLM-powered features.\r\n\r\n```\r\n\u003e code templates\r\n  python-script, python-class, python-test, fastapi-endpoint,\r\n  html-page, dockerfile, github-action\r\n\r\n\u003e code template python-class UserAuth Authentication handler\r\n  @dataclass\r\n  class UserAuth:\r\n      \"\"\"Authentication handler\"\"\"\r\n      ...\r\n\r\n\u003e code stats src/\r\n  python  ████████████████████ 19,348 lines (55 files) 100%\r\n\r\n\u003e code regex \\d{3}-\\d{4} test 555-1234\r\n  \\d — digit (0-9)\r\n  Match: 555-1234\r\n```\r\n\r\n**Commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `code templates` | List all 7 available templates |\r\n| `code template \u003ctype\u003e [Name] [desc]` | Generate boilerplate code |\r\n| `code stats \u003cpath\u003e` | Lines of code by language |\r\n| `code search \u003cpattern\u003e` | Regex search across code files |\r\n| `code read \u003cfile\u003e` | Display file with syntax info |\r\n| `code diff \u003cf1\u003e \u003cf2\u003e` | Compare two files |\r\n| `code regex \u003cpattern\u003e [test]` | Test and explain regex patterns |\r\n| `code generate \u003cdesc\u003e` | LLM generates code (optional) |\r\n| `code explain \u003cfile\u003e` | LLM explains code (optional) |\r\n| `code review \u003cfile\u003e` | LLM finds bugs (optional) |\r\n| `code help` | Show all coding commands |\r\n\r\n### Auto Blog Scheduler\r\n\r\nSchedule recurring blog generation with cron expressions.\r\n\r\n```\r\n\u003e auto blog setup\r\n  [Interactive wizard]\r\n\r\n\u003e auto blog add weekly-tech \"0 9 * * 1\" tech,ai\r\n  Auto-blog 'weekly-tech' scheduled: 0 9 * * 1\r\n\r\n\u003e auto blog list\r\n  weekly-tech: 0 9 * * 1 (tech, ai)\r\n\r\n\u003e auto blog remove weekly-tech\r\n  Removed.\r\n```\r\n\r\n### Task-Aware Prompt Builder\r\n\r\nEach task type (blog, research, coding) gets optimized prompts. Configure per-task LLM providers:\r\n\r\n```yaml\r\ntask_providers:\r\n  blog: \"local-ollama\"       # Blog posts use local Ollama\r\n  research: \"openai\"         # Research uses OpenAI for quality\r\n  coding: \"local-lmstudio\"   # Code tasks use LM Studio\r\n```\r\n\r\nRun `show me the flow` to see the full architecture diagram.\r\n\r\n---\r\n\r\n## Blogging Guide\r\n\r\nSafeClaw has two blogging modes. You can use either or both.\r\n\r\n### Mode 1: Deterministic Blog (No AI)\r\n\r\nWrite entries manually, crawl websites for content, and let SafeClaw generate titles using extractive summarization (LexRank, TextRank, LSA, Luhn). No API keys, no cost, fully offline.\r\n\r\n**Setup:** None — works out of the box.\r\n\r\n```\r\n\u003e write blog news We shipped faster crawling today.\r\n  Added entry (1 total).\r\n\r\n\u003e crawl https://example.com for title content\r\n  Extracted 3 titles, added to draft.\r\n\r\n\u003e blog title\r\n  Generated: \"Faster Crawling Ships Today\"\r\n\r\n\u003e publish blog\r\n  Saved: 2026-02-24-faster-crawling-ships-today.txt\r\n```\r\n\r\n**Commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `write blog news \u003ccontent\u003e` | Add a manual entry to your draft |\r\n| `crawl \u003curl\u003e for title content` | Extract page headings into draft |\r\n| `crawl \u003curl\u003e for body content` | Extract main body text into draft |\r\n| `crawl \u003curl\u003e for non-title content` | Extract non-heading text into draft |\r\n| `blog title` | Generate a title using extractive summarization |\r\n| `show blog` | View your draft and published posts |\r\n| `edit blog \u003cnew content\u003e` | Replace draft content |\r\n| `publish blog` | Save as `.txt` locally |\r\n| `publish blog My Custom Title` | Save with a custom title |\r\n\r\n### Mode 2: AI Blog (Optional)\r\n\r\nAI generates full blog posts from a topic. You can rewrite, expand, generate headlines, and produce SEO metadata. Supports 11 providers — 5 local (free) and 6 cloud (API key required).\r\n\r\n**Setup:**\r\n\r\n1. **Choose a provider.** For free/private, use a local provider. For quality/speed, use a cloud provider.\r\n\r\n2. **Configure it in `config/config.yaml`** under `ai_providers`. Uncomment and fill in one or more:\r\n\r\n**Local AI (free, private, no API key):**\r\n\r\n```yaml\r\nai_providers:\r\n  # Ollama — easiest local option\r\n  - label: \"local-ollama\"\r\n    provider: \"ollama\"\r\n    model: \"llama3.1\"\r\n    endpoint: \"http://localhost:11434/api/chat\"\r\n\r\n  # LM Studio — GUI app with model browser\r\n  # - label: \"local-lmstudio\"\r\n  #   provider: \"lm_studio\"\r\n  #   model: \"local-model\"\r\n  #   endpoint: \"http://localhost:1234/v1/chat/completions\"\r\n\r\n  # llama.cpp — high-performance C++ inference\r\n  # - label: \"local-llamacpp\"\r\n  #   provider: \"llamacpp\"\r\n  #   model: \"local-model\"\r\n  #   endpoint: \"http://localhost:8080/v1/chat/completions\"\r\n\r\n  # Jan — user-friendly desktop app\r\n  # - label: \"local-jan\"\r\n  #   provider: \"jan\"\r\n  #   model: \"llama3.1-8b\"\r\n  #   endpoint: \"http://localhost:1337/v1/chat/completions\"\r\n```\r\n\r\n**Cloud AI (API key required):**\r\n\r\n```yaml\r\nai_providers:\r\n  # OpenAI\r\n  - label: \"openai\"\r\n    provider: \"openai\"\r\n    api_key: \"sk-...\"              # https://platform.openai.com/api-keys\r\n    model: \"gpt-4o\"\r\n\r\n  # Anthropic (Claude)\r\n  # - label: \"anthropic\"\r\n  #   provider: \"anthropic\"\r\n  #   api_key: \"sk-ant-...\"        # https://console.anthropic.com/settings/keys\r\n  #   model: \"claude-sonnet-4-20250514\"\r\n\r\n  # Google Gemini\r\n  # - label: \"google\"\r\n  #   provider: \"google\"\r\n  #   api_key: \"AI...\"             # https://aistudio.google.com/apikey\r\n  #   model: \"gemini-1.5-flash\"\r\n\r\n  # Mistral\r\n  # - label: \"mistral\"\r\n  #   provider: \"mistral\"\r\n  #   api_key: \"...\"               # https://console.mistral.ai/api-keys\r\n  #   model: \"mistral-large-latest\"\r\n\r\n  # Groq (fast inference)\r\n  # - label: \"groq\"\r\n  #   provider: \"groq\"\r\n  #   api_key: \"gsk_...\"           # https://console.groq.com/keys\r\n  #   model: \"llama-3.1-70b-versatile\"\r\n```\r\n\r\n3. **Install the local AI server** (if using local):\r\n\r\n```bash\r\n# Ollama (recommended — one command)\r\ncurl -fsSL https://ollama.com/install.sh | sh\r\nollama pull llama3.1\r\n\r\n# LM Studio — download from https://lmstudio.ai\r\n# Jan — download from https://jan.ai\r\n# llama.cpp — git clone https://github.com/ggerganov/llama.cpp \u0026\u0026 make\r\n```\r\n\r\n4. **Use it:**\r\n\r\n```\r\n\u003e blog\r\n  1. AI Blog for You (Recommended) [ollama/llama3.1]\r\n  2. Manual Blogging (No AI)\r\n\r\n\u003e 1\r\n  What should the blog post be about?\r\n\r\n\u003e sustainable technology trends in 2026\r\n  AI-Generated Blog Post\r\n  Provider: ollama/llama3.1 (847 tokens)\r\n  ---\r\n  [full article here]\r\n  ---\r\n  What would you like to do?\r\n    edit blog \u003cchanges\u003e     - Replace with your edits\r\n    ai rewrite blog         - Have AI polish/rewrite it\r\n    ai expand blog          - Have AI make it longer\r\n    publish blog            - Save as .txt locally\r\n    publish blog to \u003ctarget\u003e- Publish to WordPress/Joomla/SFTP\r\n```\r\n\r\n**AI Commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `blog` | Interactive menu — choose AI or manual |\r\n| `ai blog generate about \u003ctopic\u003e` | Generate a full blog post from a topic |\r\n| `ai rewrite blog` | Rewrite/polish your current draft |\r\n| `ai expand blog` | Expand short content into a longer article |\r\n| `ai headlines` | Generate 5 headline options for your draft |\r\n| `ai blog seo` | Generate SEO metadata (title, description, keywords, slug) |\r\n| `ai options` | Show local AI providers and install instructions |\r\n| `ai providers` | Show cloud AI providers and API key links |\r\n| `switch ai provider \u003clabel\u003e` | Switch between configured providers at runtime |\r\n\r\n**Multiple providers:** You can configure several providers at once. The first enabled one becomes the default. Switch at runtime with `switch ai provider \u003clabel\u003e`.\r\n\r\n### Publishing to Remote Platforms\r\n\r\nPublish your blog (from either mode) to WordPress, Joomla, any SFTP server, or a generic API endpoint.\r\n\r\n**Setup:** Add one or more targets to `config/config.yaml` under `publish_targets`:\r\n\r\n```yaml\r\npublish_targets:\r\n  # WordPress (REST API v2)\r\n  - label: \"my-wordpress\"\r\n    type: \"wordpress\"\r\n    url: \"https://mysite.com\"\r\n    username: \"admin\"\r\n    password: \"xxxx xxxx xxxx xxxx\"   # Application Password (WP Admin \u003e Users \u003e Profile)\r\n    wp_status: \"publish\"              # publish, draft, pending, private\r\n\r\n  # Joomla (Web Services API, Joomla 4+)\r\n  - label: \"my-joomla\"\r\n    type: \"joomla\"\r\n    url: \"https://myjoomla.com\"\r\n    api_key: \"your-joomla-api-token\"  # Joomla Admin \u003e Users \u003e API Token\r\n    joomla_category_id: 2\r\n\r\n  # SFTP (any server)\r\n  - label: \"my-server\"\r\n    type: \"sftp\"\r\n    sftp_host: \"myserver.com\"\r\n    sftp_user: \"deploy\"\r\n    sftp_key_path: \"~/.ssh/id_rsa\"\r\n    sftp_remote_path: \"/var/www/html/blog\"\r\n\r\n  # Generic API (POST JSON to any endpoint)\r\n  - label: \"my-api\"\r\n    type: \"api\"\r\n    url: \"https://api.mysite.com/posts\"\r\n    api_key: \"your-bearer-token\"\r\n```\r\n\r\n**Publishing commands:**\r\n\r\n| Command | Description |\r\n|---|---|\r\n| `publish blog to my-wordpress` | Publish to a specific target |\r\n| `publish blog to all` | Publish to all enabled targets |\r\n| `list publish targets` | Show configured targets |\r\n| `set front page \u003cid\u003e on \u003ctarget\u003e` | Set which post is the home page |\r\n| `show front page` | Show current front page setting |\r\n| `list pages for \u003ctarget\u003e` | List available pages/posts on a target |\r\n\r\n### Deterministic vs AI: Quick Comparison\r\n\r\n| | Deterministic | AI-Powered |\r\n|---|---|---|\r\n| **Cost** | $0 | $0 (local) or pay-per-token (cloud) |\r\n| **Privacy** | Fully local | Local AI = local; cloud = data sent to provider |\r\n| **Titles** | Extractive summarization | LLM-generated |\r\n| **Content** | Manual writing + crawling | LLM generates from topic |\r\n| **Speed** | Instant | Seconds (local) to seconds (cloud) |\r\n| **Determinism** | 100% reproducible | Varies by model/temperature |\r\n| **Setup** | None | Install local AI or add cloud API key |\r\n\r\n---\r\n\r\n## Architecture\r\n\r\n\u003e Tip: Run `show me the flow` or `flow` inside SafeClaw to see the full interactive architecture diagram.\r\n\r\n```\r\n┌────────────────────────────────────────────────────────────────────────────┐\r\n│                               SAFECLAW                                     │\r\n├────────────────────────────────────────────────────────────────────────────┤\r\n│                                                                            │\r\n│  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐  ┌────────────┐      │\r\n│  │  CHANNELS   │  │   ACTIONS   │  │  TRIGGERS    │  │    CORE    │      │\r\n│  ├─────────────┤  ├─────────────┤  ├──────────────┤  ├────────────┤      │\r\n│  │ • CLI       │  │ • Blog ──────────────────────────▸ AI Writer  │      │\r\n│  │ • Telegram  │  │ • Research  │  │ • Cron       │  │ • Analyzer │      │\r\n│  │ • Webhooks  │  │ • Code      │  │ • Webhooks   │  │ • Documents│      │\r\n│  │ • Discord   │  │ • Style     │  │ • Auto Blog  │  │ • Notify   │      │\r\n│  └─────────────┘  │ • Files     │  │ • Watchers   │  │ • Feeds    │      │\r\n│                   │ • Shell     │  │ • Events     │  │ • Crawler  │      │\r\n│  ┌─────────────┐  │ • Crawl     │  └──────────────┘  │ • Summary  │      │\r\n│  │   VOICE     │  │ • Summarize │                    │ • Voice    │      │\r\n│  ├─────────────┤  │ • Reminder  │  ┌──────────────┐  │ • Social   │      │\r\n│  │ • Whisper   │  │ • Briefing  │  │  DEVICES     │  └────────────┘      │\r\n│  │ • Piper TTS │  │ • News/RSS  │  ├──────────────┤                      │\r\n│  └─────────────┘  │ • Email     │  │ • Bluetooth  │  ┌────────────┐      │\r\n│                   │ • Calendar  │  │ • Network    │  │PERSONALIZE │      │\r\n│  ┌─────────────┐  │ • Social    │  │ • Smart Home │  ├────────────┤      │\r\n│  │ PROMPT      │  └──────┬──────┘  └──────────────┘  │ • Style    │      │\r\n│  │ BUILDER     │         │                           │   Profiler │      │\r\n│  ├─────────────┤         ▼                           │ • Writing  │      │\r\n│  │ • Task-     │  ┌──────────────────────────────┐   │   Profile  │      │\r\n│  │   aware     │  │       BLOG PUBLISHER          │   │ • 35+     │      │\r\n│  │ • Style     │  │  WordPress • Joomla • SFTP    │   │   metrics │      │\r\n│  │   inject    │  │  Generic API • Auto Schedule  │   └────────────┘      │\r\n│  │ • Provider  │  └──────────────────────────────┘                       │\r\n│  │   routing   │                                      ┌────────────┐      │\r\n│  └─────────────┘  ┌──────────────────────────────┐    │ AI WRITER  │      │\r\n│                   │        COMMAND PARSER          │    ├────────────┤      │\r\n│                   │  Keyword + Regex + Fuzzy       │    │ Local:     │      │\r\n│                   │  + Date Parser + Specificity   │    │ • Ollama   │      │\r\n│                   │  Weighted Phrase Matching       │    │ • LM Studio│      │\r\n│                   └──────────────────────────────┘    │ • llama.cpp│      │\r\n│                                                       │ Cloud:     │      │\r\n│  ┌─────────────────────────────────────────────────┐  │ • OpenAI   │      │\r\n│  │                MEMORY (SQLite)                    │  │ • Anthropic│      │\r\n│  │  History • Preferences • Reminders • Cache       │  │ • Google   │      │\r\n│  │  Events • Blog Drafts • Writing Profiles         │  │ • Mistral  │      │\r\n│  │  Research Sessions                               │  │ • Groq     │      │\r\n│  └─────────────────────────────────────────────────┘  └────────────┘      │\r\n└────────────────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n---\r\n\r\n## How It Works (No AI!)\r\n\r\n### Command Parsing\r\n\r\nInstead of burning tokens on LLMs, SafeClaw uses:\r\n\r\n1. **Keyword matching** — Fast lookup of command keywords\r\n2. **Regex patterns** — Structured extraction of parameters\r\n3. **Fuzzy matching** — Typo tolerance with rapidfuzz\r\n4. **Specificity-weighted phrase matching** — Longer, more specific phrases win over short keyword collisions\r\n5. **Date parsing** — Natural language dates with dateparser\r\n\r\n```\r\n# Example: \"remind me to call mom tomorrow at 3pm\"\r\n# → intent: \"reminder\"\r\n# → params: {task: \"call mom\", time: \"tomorrow at 3pm\"}\r\n# → entities: {datetime: 2024-01-16 15:00:00}\r\n```\r\n\r\n### Voice Pipeline\r\n\r\nFully local voice processing — no cloud APIs, no per-minute billing:\r\n\r\n* **Whisper STT** — OpenAI's Whisper model running locally for speech recognition\r\n* **Piper TTS** — Fast, high-quality text-to-speech with multiple voice options\r\n\r\n### Summarization\r\n\r\nUses [sumy](https://github.com/miso-belica/sumy)'s extractive algorithms:\r\n\r\n* **LexRank** — Graph-based, like PageRank for sentences\r\n* **TextRank** — Word co-occurrence graphs\r\n* **LSA** — Latent Semantic Analysis\r\n* **Luhn** — Statistical word frequency\r\n\r\nNo neural networks, no API calls — pure math.\r\n\r\n### Social Media Summarization\r\n\r\nAdd Twitter, Mastodon, or Bluesky accounts and get extractive summaries of their recent posts. No API tokens needed for public content. Useful for tracking industry voices, news accounts, or competitors without doomscrolling.\r\n\r\n### Web Crawling\r\n\r\nAsync crawling with httpx + BeautifulSoup:\r\n\r\n* Single page link extraction\r\n* Multi-page crawling with depth limits\r\n* Domain filtering and pattern matching\r\n* Built-in caching\r\n\r\n---\r\n\r\n## Extending SafeClaw\r\n\r\n### Custom Actions\r\n\r\n```python\r\nfrom safeclaw.actions.base import BaseAction\r\n\r\nclass MyAction(BaseAction):\r\n    name = \"myaction\"\r\n\r\n    async def execute(self, params, user_id, channel, engine):\r\n        # Your logic here\r\n        return \"Action completed!\"\r\n\r\n# Register it\r\nengine.register_action(\"myaction\", MyAction().execute)\r\n```\r\n\r\n### Custom Intent Patterns\r\n\r\nAdd to `config/intents.yaml`:\r\n\r\n```yaml\r\nintents:\r\n  deploy:\r\n    keywords: [\"deploy\", \"release\", \"ship\"]\r\n    patterns:\r\n      - \"deploy to (production|staging)\"\r\n    examples:\r\n      - \"deploy to production\"\r\n    action: \"webhook\"\r\n```\r\n\r\n### Plugin System\r\n\r\nPlugins are automatically loaded from the plugins directory:\r\n\r\n```\r\nsrc/safeclaw/plugins/\r\n├── official/          # Curated, tested plugins\r\n│   └── smarthome.py\r\n├── community/         # User-contributed plugins\r\n│   └── your_plugin.py\r\n├── base.py            # BasePlugin class\r\n└── loader.py          # Plugin loader\r\n```\r\n\r\n---\r\n\r\n## Who Is SafeClaw For?\r\n\r\n**SafeClaw is for you if:**\r\n* You want automation without API bills\r\n* You're tired of unpredictable OpenClaw costs\r\n* Privacy matters to you — your data stays local by default\r\n* You prefer deterministic, predictable behavior\r\n* You want voice control without paying for ElevenLabs\r\n* You need social media monitoring without the doomscroll\r\n* You want smart home and Bluetooth control in one tool\r\n* You want AI blogging with your choice of provider (or no AI at all)\r\n* You want to publish to WordPress, Joomla, or any server from the CLI\r\n* You want an assistant that learns how you write and adapts to your style\r\n* You want a research pipeline that gathers before it spends tokens\r\n* You need code templates and utilities without spinning up an LLM\r\n* You don't need free-form AI conversation\r\n\r\n**Stick with OpenClaw if:**\r\n* You need autonomous multi-step reasoning\r\n* Free-form conversation is essential\r\n* You want the AI to write its own skills\r\n* Browser automation is a core need\r\n\r\n---\r\n\r\n## Development\r\n\r\n```bash\r\n# Clone the repo\r\ngit clone https://github.com/princezuda/safeclaw.git\r\ncd safeclaw\r\n\r\n# Install dev dependencies\r\npip install -e \".[dev]\"\r\n\r\n# Run tests\r\npytest\r\n\r\n# Type checking\r\nmypy src/safeclaw\r\n\r\n# Linting\r\nruff check src/safeclaw\r\n```\r\n\r\n---\r\n\r\n## License\r\n\r\nMIT License — see [LICENSE](LICENSE) for details.\r\n\r\n## Contributing\r\n\r\nContributions welcome! Areas we'd love help with:\r\n\r\n* More channel adapters (Discord, Slack, Matrix)\r\n* Smart home integrations (Home Assistant, Philips Hue)\r\n* Better intent patterns\r\n* Additional social media platforms\r\n* Documentation improvements\r\n* Tests and CI/CD\r\n\r\n## Acknowledgments\r\n\r\n* [Whisper](https://github.com/openai/whisper) — Local speech-to-text\r\n* [Piper](https://github.com/rhasspy/piper) — Local text-to-speech\r\n* [sumy](https://github.com/miso-belica/sumy) — Extractive summarization\r\n* [VADER](https://github.com/cjhutto/vaderSentiment) — Sentiment analysis\r\n* [feedparser](https://github.com/kurtmckee/feedparser) — RSS/Atom feed parsing\r\n* [dateparser](https://github.com/scrapinghub/dateparser) — Natural language date parsing\r\n* [rapidfuzz](https://github.com/maxbachmann/RapidFuzz) — Fast fuzzy matching\r\n* [httpx](https://github.com/encode/httpx) — Async HTTP client (AI providers, publishing)\r\n* [FastAPI](https://fastapi.tiangolo.com/) — Webhook server\r\n* [Rich](https://github.com/Textualize/rich) — Beautiful CLI output\r\n* [PyMuPDF](https://pymupdf.readthedocs.io/) — PDF parsing\r\n* [python-docx](https://python-docx.readthedocs.io/) — DOCX parsing\r\n* [icalendar](https://icalendar.readthedocs.io/) — ICS calendar parsing\r\n* [desktop-notifier](https://github.com/samschott/desktop-notifier) — Cross-platform notifications\r\n* [spaCy](https://spacy.io/) — Named entity recognition\r\n* [YOLO](https://github.com/ultralytics/ultralytics) — Object detection\r\n* [NLTK](https://www.nltk.org/) — Natural language toolkit (writing style analysis)\r\n* [Ollama](https://ollama.com/) — Local AI inference (optional, for AI blogging)\r\n* [LM Studio](https://lmstudio.ai/) — Desktop AI model runner (optional)\r\n\r\n---\r\n\r\n**SafeClaw** — Because your assistant shouldn't cost more than your rent. 🐾\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprincezuda%2Fsafeclaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprincezuda%2Fsafeclaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprincezuda%2Fsafeclaw/lists"}