A skill is a text file. That is the whole trick.

Everything Jarvis knows how to do is a few lines of plain English in a file: what it is for, what sets it off, and how careful to be. The ones it ships with and the ones you write sit in the same list, in the same format, with the same switch.

30
built in
8
categories
3
ways to set one off

One real file, field by field.

This is morning-routine, exactly as it ships — the top of the file, which is the part that decides everything. Under it come 38 lines of instructions in plain English, and nothing else. No build step, no plugin API, no code.

morning-routinejarvis/skills/builtin/morning-routine/SKILL.md
Enabled
schema_version: "1"
name: morning-routine
version: "2.0.0"
description: >-
  Delivers the user's spoken morning briefing: today's calendar, unread
  email summary, weather, and anything urgent. Use when the user asks for
  a morning briefing or day overview, says good morning, starts their day,
  or asks "what's on today" / "wie sieht mein Tag aus".
when_to_use: >-
  Use when the user says "starte die Morgenroutine", "guten Morgen",
  "good morning", "morning briefing", "Tagesueberblick", "what's my day
  looking like", or asks for their schedule first thing in the day.
category: productivity
tags: [daily, routine, mail, calendar, weather]
author: builtin
license: Apache-2.0
triggers:
  - type: voice
    pattern: "(morgenroutine|morgen[-\\s]?briefing|morning routine|morning briefing|start day|tages(ue|ü)berblick)"
    language: [de, en]
  - type: voice
    pattern: "^(guten morgen|good morning)[.!\\s]*$"
    language: [de, en]
  - type: schedule
    cron: "0 7 * * *"
    language: [de, en]
requires_tools: []
risk_policy:
  default_tier: monitor
config:
  email_limit: 5
  calendar_days_ahead: 1
  weather_location: "Berlin"
  weather_format: metric
token_budget_estimate: 3000
execution: inline

— and then the instructions, in plain English —

# Morning Routine

Deliver a short spoken morning briefing — an overview of the day in under
30 seconds. No walls of text, no reading out 20 emails. Work through the
steps below with the tools you actually have; skip a step gracefully
(one short clause, e.g. "calendar is not connected yet") when its
integration is unavailable. Never invent data.

## Steps

1. **Calendar.** If a calendar plugin or tool is connected (e.g. a
   `google-calendar/...` tool), fetch today's events
   ({{ config.calendar_days_ahead }} day ahead).
   - 0 events: say the calendar is free today.
description
What it does, and the sentences that should reach it. This is the text the assistant itself reads when it is deciding which skill a request belongs to.
when_to_use
The same question answered a second time, in the user's own words. Two phrasings of one thing is deliberate — a single sentence is a single guess at how someone will ask.
triggers
What sets it off without being asked: a spoken phrase, a key chord, or a cron line. A skill can have several, and each one names the languages it is written for.
risk_policy
Where its commands start on the safe / monitor / ask / block ladder. A skill cannot lower its own tier at run time.
config
The settings it exposes. They are read back into the instructions below by name, so changing one changes the behaviour without editing the prose.
requires_tools
What has to be connected before it can run. An empty list means it works on a fresh install.

Three ways in, and one of them is the clock.

A skill does not wait to be picked from a menu. It declares what should reach it, and the app watches for exactly that — which is why a skill you wrote this morning answers a sentence you say this afternoon without you naming it.

Spoken28

A phrase, matched as you say it. Every built-in pattern is written for German and English at once.

([e]rstell\w*|b[a]u\w*|m[a]ch\w*|schr[e]ib\w*|gener[i]er\w*|[a]nleg\w*)\s+(mir\s+)?(bitte\s+)?(doch\s+)?(mal\s+)?einen?\s+(neuen?\s+)?skill|einen?\s+(neuen?\s+)?skill\s+(\w+\s+){0,3}([e]rstell\w*|[b]au\w*|[a]nleg\w*|[s]chreib\w*|[g]enerier\w*)|aus\s+(diesem|dem|meinem)\s+\w+\s+einen\s+skill|(cre[a]te|b[u]ild|m[a]ke|s[e]t\s+up)\s+(me\s+)?an?\s+(new\s+)?skill|t[u]rn\s+(this|that|it)\s+into\s+a\s+skill|(cre[a]\w*|h[a]z|constr[u]\w*)\s+(me\s+)?una?\s+(nuevo\s+|nueva\s+)?skill

Shortcut1

A key chord, anywhere on the machine.

ctrl+alt+d

Clock1

A cron line. It runs whether or not you are at the keyboard.

0 7 * * *
Skills30 of 30 built in · 23 of them speak for a plugin
New skill

meta

cli-gcloudv1.0.0

Drive Google Cloud through the connected gcloud CLI (the cli_gcloud tool) — billing/costs, projects, compute, storage, IAM — instead of opening the Cloud Console in a browser via Computer-Use (which stalls on the login page). Read-first; treat resource-changing commands as consequential.

Ask

control-apiv1.0.0

Change Jarvis's own configuration through the local Control API instead of clicking the desktop UI or driving Computer-Use. Lets a local coding agent (Codex CLI, Claude Code) read and change settings, switch brain/STT/TTS providers, switch the reply language, and rotate API keys — all over HTTP on the loopback interface.

Ask

jarvis-doc-authorv1.0.0

Authoritative skill for writing internal Personal-Jarvis docs under ``docs/`` and sibling directories. Enforces a Diataxis-compliant classification (concept/how-to/tutorial/reference/troubleshooting/adr), a uniform YAML frontmatter schema, a style canon (active voice, imperative instructions, English prose), and hard anti-patterns (no quadrant mixing, no filler intros, no "Click here"). Use when writing or fundamentally reworking any Markdown doc under ``docs/``.

Monitor

skill-creatorv1.2.0

Creates a new Jarvis skill from the user's description — the assistant writes the whole skill (name, trigger phrase, schedule, steps, spoken answer format) and files it as a draft. Use when the user wants to build a new skill, routine or automation ("erstell mir einen Skill, der …" / "create a skill that …" / "mach aus diesem Workflow einen Skill").

Monitor

productivity

deep-work-modev2.1.0

Activates a distraction-free focus sprint: quiet notifications where possible, focus music if Spotify is connected, and a clear spoken start signal with the sprint duration. Use when the user wants to focus, start deep work, or enter concentration mode.

Monitor

morning-routinev2.0.0

Delivers the user's spoken morning briefing: today's calendar, unread email summary, weather, and anything urgent. Use when the user asks for a morning briefing or day overview, says good morning, starts their day, or asks "what's on today" / "wie sieht mein Tag aus".

Monitor

plugin-airtable

Read and edit records in the user's Airtable bases.

Monitor

plugin-asana

Manage the user's Asana tasks and projects.

Monitor

plugin-cal_com

Read and manage the user's Cal.com bookings and availability.

Monitor

plugin-clickup

Read and manage the user's ClickUp tasks, lists and docs.

Monitor

plugin-dropbox

Find, read and share the user's Dropbox files.

Monitor

plugin-google_calendar

Read and manage events in the user's Google Calendar.

Monitor

plugin-google_drive

Search, read, and manage files in the user's Google Drive.

Monitor

plugin-notion

Read and edit the user's Notion pages and databases.

Monitor

plugin-todoist

Read and manage the user's Todoist tasks and projects.

Monitor

memory

memory-savev2.0.0

DEPRECATED since B5 (2026-05-13) and disabled. Long-term-memory writes go through the wiki pipeline (Awareness layer, SessionRollupWorker, WikiCurator). Use when nothing — this skill must not be re-enabled; "merk dir" phrases belong to the normal brain pipeline.

Safe

creativity

plugin-canva

Create, search and export the user's Canva designs.

Monitor

plugin-higgsfield

Generate images, videos and characters with the user's Higgsfield account.

Monitor

developer

plugin-cloudflare

Manage the user's Cloudflare DNS records, zones, and Workers.

Ask

plugin-github

Work with the user's GitHub repositories, issues, and pull requests.

Ask

plugin-linear

Manage the user's Linear issues, projects, and cycles.

Monitor

plugin-stripe

Look up Stripe customers, payments, invoices, and account balance.

Ask

plugin-supabase

Query and manage the user's Supabase database, tables, and projects.

Ask

plugin-vercel

Inspect the user's Vercel projects and deployments.

Monitor

communication

plugin-discord

Read and post messages in the user's Discord server.

Ask

plugin-gmail

Read and send email from the user's connected Gmail inbox.

Ask

plugin-slack

Read and post messages in the user's Slack workspace and channels.

Ask

home

plugin-home_assistant

Read and control the user's Home Assistant smart home.

Ask

media

plugin-spotify

Play and control the user's music on Spotify.

Monitor

plugin-youtube_music

Play and control the user's music on YouTube Music.

Monitor

No skill matches that.

Yours sit in the same list as ours.

There is no separate place for a skill you wrote. Same folder, same format, same switch, same search — and the same ladder deciding what it is allowed to run.

23 of 30 speak for a plugin
Connecting a service also teaches Jarvis how to talk about it: each of those ships beside its plugin and is the reason "put that in Notion" reaches Notion rather than a search engine.shipped in pairs
The rest are the app's own
A morning briefing, a focus sprint, the one that writes new skills. Those are the ones worth reading first if you are about to write your own — they are the format's own worked examples.7 skills
A new one starts as a draft
A skill the assistant writes for itself is created disabled and stays that way until you read it and turn it on. Nothing writes itself into the running set.never auto-enabled

Everything on this page ships in the app.

One line installs it. Nothing here is an add-on, a paid tier or a waiting list.

TerminalPowerShellShell

curl -fsSL https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.sh | bash

irm https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.ps1 | iex

curl -fsSL https://raw.githubusercontent.com/PersonalJarvis/PersonalJarvis/main/install/install.sh | bash

The rest of it

Read from the application's own catalog — jarvis/skills/builtin/*/SKILL.md — on 2026-08-29.