Skills index
All built-in skills shipped with Istota. Skills marked "always" are loaded for every task. Skills marked "doc-only" provide reference documentation without a CLI module.
Always included
| Skill |
Description |
files |
File operations in your workspace |
sensitive_actions |
Confirmation rules for destructive operations |
memory |
Persistent memory writes — USER.md (behavioral) and the knowledge graph (facts). CLI: append, add-heading, remove, replace, remove-heading, show, headings |
scripts |
User's reusable Python scripts |
memory_search |
Memory search CLI (search, index, reindex, stats, facts, timeline, add-fact, invalidate, delete-fact, fact-history) |
kv |
Key-value store for persistent runtime state |
skills |
On-demand skill loader (istota-skill skills show <name> / list) — always eager so the model can pull menu skills |
Communication
| Skill |
Keywords |
CLI |
email |
email, mail, send, inbox, reply, message |
yes -- list, read, search, thread, attachments, from-senders, newsletters, send, reply, reply-all, mark, delete, output |
nextcloud |
share, sharing, download link, nextcloud, permission, access, capabilities, quota |
yes -- capabilities, user, group, share (incl. share link), files, talk, notify, activity. Gated on requires_capability: [nextcloud] |
ntfy |
ntfy, push notification, notify me, notify my phone, mobile alert |
yes -- send (one-way push to the user's ntfy device) |
Productivity
| Skill |
Keywords |
CLI |
calendar |
calendar, event, meeting, schedule, appointment |
yes -- list (alias agenda), create, update, delete |
todos |
todo, task, checklist, reminder, done, complete |
doc-only |
reminders |
remind, reminder, alert me, notify me |
doc-only |
schedules |
schedule, recurring, cron, daily, weekly |
doc-only |
tasks |
subtask, queue, background, later |
yes -- status, recent (admin-only; read your own task state, queue subtasks) |
bookmarks |
bookmark, bookmarks, karakeep, saved, reading list, favourited, favorite |
yes -- search, list, add, tags, etc. |
| Skill |
Keywords |
CLI |
briefing |
(auto-selected for briefing source type) |
doc-only -- output formatting for a generated briefing |
briefings |
briefing, block, digest, briefing source |
yes -- blocks list/add/set/reorder/remove, sources list/add/remove, archive list/show |
briefings_config |
briefing config, briefing schedule |
doc-only -- user-editable briefing schedule in {bot_dir}/config/ |
markets |
market, stock, ticker, index, futures |
yes -- quote, summary, finviz |
feeds |
feed, rss, subscribe, unsubscribe, opml |
yes -- list, categories, entries, add, remove, refresh, poll, run-scheduled, import-opml, export-opml |
browse |
browse, website, scrape, screenshot, url |
yes -- get, render, screenshot, extract, interact, links, close |
| Skill |
Keywords |
CLI |
transcribe |
transcribe, ocr, screenshot, scan, image |
yes -- OCR via Tesseract |
whisper |
transcribe, whisper, audio, voice, speech |
yes -- transcribe, models, download (faster-whisper, CPU int8) |
notes |
note, save, write, markdown |
doc-only (companion to transcribe) |
Development
| Skill |
Keywords |
CLI |
developer |
git, gitlab, repo, commit, branch, MR, PR |
doc-only (env setup via hook) |
Accounting
| Skill |
Keywords |
CLI |
Notes |
money |
accounting, ledger, beancount, invoice, expense, money |
yes -- in-process accounting (ledger, invoicing, transactions, work log, investment portfolio) |
Default-on module — no resource needed; opt out via the user's disabled_modules. Operations are also operator-reachable as istota money <op> |
Google Workspace
| Skill |
Keywords |
CLI |
google_workspace |
google drive, google docs, google sheets, google calendar, google chat, spreadsheet, gws |
yes -- a thin istota-skill google_workspace … entry point that execs the gws binary |
Requires OAuth connection via the web dashboard. Token injected via setup_env() hook.
Location
| Skill |
Keywords |
CLI |
location |
location, gps, where, place, tracking |
yes -- current (alias last), history, places, learn, update, delete, attendance, reverse-geocode, day-summary, discover, dismiss-cluster, list-dismissed, restore-dismissed, place-stats, import-garmin-tracks |
Health
| Skill |
Keywords |
CLI |
health |
health, weight, bloodwork, labs, biomarker, panel, blood pressure |
yes -- log, stats, latest, panels, panel, add-panel, add-biomarker, trend, upload, import-csv, export-csv, summary, settings, set, encounters, encounter, add-encounter, update-encounter, delete-encounter, diagnoses, diagnosis, add-diagnosis, update-diagnosis, resolve-diagnosis, delete-diagnosis, link-encounter, unlink-encounter, history-summary, immunizations, immunization, add-immunization, update-immunization, delete-immunization, vaccine-refs, coverage, import-immunizations, explain-immunization, garmin-status, garmin-sync, garmin-disconnect, documents, document, attach-document, detach-document |
Requires the health module to be enabled (on by default).
Infrastructure
| Skill |
Keywords |
CLI |
devbox |
devbox, install package, pip install, compile, dig, nslookup, traceroute, network diagnostic |
yes -- exec, exec-file, cp-in, cp-out, status, reset |
Specs
| Skill |
Keywords |
CLI |
spec |
spec, draft spec, design doc, implementation plan |
doc-only |
Codifies a spec-driven development workflow. Specs live in {notes_folder}/Specs/{Drafts,Active,Done}/ by default, or in a named project's folder. Supports drafting, starting, marking done, listing, showing, and editing specs. See the skill body for the full lifecycle and conventions.
Monitoring
| Skill |
Keywords |
CLI |
heartbeat |
heartbeat, monitoring, health check, alert |
doc-only |
Safety
| Skill |
Keywords |
CLI |
untrusted_input |
(none — never selected directly) |
doc-only |
untrusted_input is a doc-only companion skill with no triggers. It loads via companion_skills declarations on the ten ingest-shaped skills (email, browse, calendar, transcribe, whisper, feeds, bookmarks, briefings, nextcloud, tasks), so its inbound-content security rules ride along whenever a task processes content from outside the trust boundary. It pairs with sensitive_actions (outbound rules there, inbound-reading rules here).
Selection
Skill loading is single-axis: a skill is either eager (full body in the prompt) or in the menu (a one-line "load on demand" entry the model pulls in full via istota-skill skills show <name>). A single deterministic pass produces the eager set from these selectors: always_include, source_types match, file_types match, sticky skills (carried from recent conversation turns), and companion_skills of the selected set. Everything else eligible goes in the menu, which is the full eligible catalogue minus the eager set.
Keyword (triggers) matching and the former resource_types matching are no longer selectors. triggers survives only as !skills documentation; the resource_types menu-membership gate was removed in the Resources sunset. The former "progressive disclosure" two-axis model and the LLM Pass-2 pre-router are both gone.
See skills for details on the selection system.
Checking availability
Use !skills (in Talk or web chat) to see which skills are available, unavailable (missing dependencies), or disabled for your user. Use !skills <name> for details on a specific skill.