🐍 Personal AI agent in pure Python — OpenClaw reimagined. Memory, RAG, skills marketplace, cron, voice. Telegram/Discord/WhatsApp/Web. Works with DeepSeek, Claude, Gemini, Kimi, GLM, Ollama.
Send emails via SMTP. Supports plain text, HTML, attachments, CC/BCC. Use when: the user asks to send an email, notification, message, or report. NOT for: reading/receiving mail (use googleworkspace for Gmail), sending via Gmail API (use googleworkspace instead).
Slack API integration — send/read messages, react to messages, pin items, and fetch member info. Use when: user wants to send a Slack message, check Slack channels, react to a message, or manage pins. NOT for: Discord (use Discord channel), email (use email skill), or real-time Slack event streaming.
Analyze CSV and Excel files — statistics, filtering, grouping, and data previews. Use when: user asks to read, analyze, query, summarize, or explore tabular data in CSV, TSV, or Excel files. NOT for: database queries, writing new files, or non-tabular formats.
Fetch stock quotes, crypto prices, forex rates, and financial data via Yahoo Finance. Use when: user asks about stock price, market data, company ticker, cryptocurrency price, or forex exchange rates. NOT for: options/futures data, fundamental analysis, or real-time tick-by-tick data.
Search and summarize news on any topic via websearch or DuckDuckGo. Use when: user asks about recent news, current events, headlines, or wants a news briefing on any subject. NOT for: historical news archives, paywalled articles, or real-time breaking news alerts.
Convert between PDF and image formats. Use when: user asks to convert PDF pages to images (PNG/JPEG) or combine images into a PDF. NOT for: text extraction (use pdfreader), PDF editing, or document format conversion (DOCX/HTML).
Merge multiple PDF files into a single PDF. Use when: user asks to combine, join, or concatenate PDFs. Supports page selection and ordering. NOT for: splitting PDFs, editing content, or converting formats.
Add or remove password protection on PDF files. Use when: user asks to encrypt, password-protect, unlock, or decrypt a PDF. Supports owner and user passwords with permission controls. NOT for: digital signatures, certificate-based encryption, or DRM.
Extract text content from PDF files. Use when: user asks to read, extract, or analyze content from a PDF document. Supports multi-page extraction, page ranges, and metadata. NOT for: scanned/image PDFs (OCR), PDF editing, or creating PDFs.
Split a PDF into separate files by page ranges. Use when: user asks to split, extract pages from, or break apart a PDF. Supports extracting single pages, ranges, or every-N-pages splitting. NOT for: merging PDFs, reading text, or converting formats.
Create PDF documents from text, Markdown, or HTML content. Use when: user asks to create, generate, or write a PDF. Supports headings, paragraphs, bullet lists, tables, and basic formatting. NOT for: editing existing PDFs, filling forms, or adding images/charts.
Scrape and extract content from web pages. Supports extracting text, links, headings, and structured data. Use when the user asks to read a web page, extract information from a URL, or scrape website content.
Get current weather and forecasts via Open-Meteo and wttr.in. Use when: user asks about weather, temperature, rain, wind, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed.
Get YouTube video information, metadata, and transcripts/subtitles. Use when: user asks about a YouTube video, wants a video summary, needs a transcript, or asks to extract info from a YouTube URL. NOT for: downloading videos, live streams, or private/unlisted videos.
Execute Python code snippets safely in an isolated subprocess with timeout protection. Use when: the user asks to run, test, or evaluate Python code, calculate expressions, or prototype logic. NOT for: running shell commands, executing other languages, or code that needs filesystem/network access.
GitHub operations via gh CLI or Python API. Use when: listing repos, creating/viewing issues and PRs, checking CI runs, managing releases, or querying the GitHub API. NOT for: general git commands (use git directly), cloning private repos without auth.
Make HTTP requests (GET, POST, PUT, DELETE, PATCH) to any API endpoint. Use when: the user asks to call an API, test an endpoint, fetch JSON/data from a URL, or interact with a REST API. NOT for: web scraping (use webscraper), web search (use tavilysearch), or file downloads (use curl/wget).
Google Workspace via gog CLI — Gmail, Calendar, Drive, Contacts, Sheets, and Docs. Use when: the user asks to send/search Gmail, check calendar, manage Drive files, read or edit Sheets, export Docs, or look up contacts. NOT for: Google Cloud APIs, Firebase, or services outside Workspace.
Generate images via OpenAI Images API (DALL-E 3, GPT-image). Use when: user asks to generate, create, draw, or design an image, illustration, logo, or artwork. NOT for: editing existing images, image format conversion, or screenshots.
Control Spotify playback — play, pause, skip, search, and queue tracks. Use when: user asks to play music, search for songs, control playback, or manage Spotify queue. NOT for: downloading music, non-Spotify services (Apple Music, YouTube Music), or audio file playback.
Text-to-speech — convert text to audio using gTTS or edge-tts. Use when: user asks to read text aloud, generate an audio file from text, or create a voiceover. NOT for: speech-to-text/transcription (use Deepgram or whisper), music generation, or audio editing.
Dynamically create new skills when no existing skill can handle the request. Use when: you need a capability that doesn't exist yet — write the code, bundle it as a skill, install dependencies, and make it available. NOT for: one-off tasks existing tools handle, or skills too specific to reuse.
Notion API for creating and managing pages, databases, and blocks. Use when: user asks to create a Notion page, query a database, search notes, add content to Notion, or manage Notion workspace items. NOT for: local file editing (use readfile/writefile), Obsidian vaults (use obsidian skill), or real-time collaboration.
Work with Obsidian vaults (plain Markdown notes). Use when: user asks to search notes, create notes, move/rename notes, or manage their Obsidian vault. NOT for: Notion pages (use notion skill), non-Markdown files, or Obsidian plugin configuration.