Built-in Skills

Weather — skills/weather.py

Provides current conditions and multi-day forecasts using the National Weather Service API (US only, no API key required). Geocoding uses Nominatim (OpenStreetMap).

Skills

Function Description
get_current_weather(location) Current temperature, conditions, humidity, wind
get_forecast(location, days) Multi-day forecast; days defaults to 3

Configuration (skills.weather in llm.yaml)

Key Default Description
default_location (from location block) Used when the user does not specify a location
units "imperial" imperial (°F) or metric (°C)

News — skills/news.py

Fetches headlines and article summaries from configurable RSS feeds. Articles are extracted with trafilatura and summarized by a sub-LLM call.

Skills

Function Description
get_news(category) Returns a numbered list of headlines for the given category
get_news_article(category, article_number) Fetches and summarizes a specific article by its position in the list

Configuration (skills.news in llm.yaml)

Key Default Description
max_headlines 5 Maximum headlines returned per request
model "gpt-4o" Model used for article summarization
base_url Base URL for local model providers
feeds (see below) Map of category name → RSS feed URL

Default feeds:

feeds:
  latest:   "https://moxie.foxnews.com/google-publisher/latest.xml"
  world:    "https://moxie.foxnews.com/google-publisher/world.xml"
  politics: "https://moxie.foxnews.com/google-publisher/politics.xml"
  local:    "https://myfox8.com/feed/"

Add or replace any category by editing the feeds map. Any RSS 2.0 or Atom feed works.


Stocks — skills/stocks.py

Returns stock quotes using yfinance.

Skills

Function Description
get_stock_info(tickers) Price, day range, 52-week range, and percentage change for one or more symbols

Example response

Apple Inc. (AAPL)
  Price: 213.45 USD  +5.32 (+2.56%)  [REGULAR]
  Day range: 208.10 – 214.20
  52-week range: 164.08 – 237.23
  200-day avg: 198.45

Home Assistant — skills/home_assistant.py

Controls and queries smart home devices via the Home Assistant REST API. See Home Assistant for full setup documentation.

Skills

Function Description
handle_home_control(request, speaker) Natural language control of lights, fans, locks, covers, and thermostats

Configuration (skills.home_assistant in llm.yaml)

Key Default Description
url "http://homeassistant.local:8123" Home Assistant base URL
model "gpt-4o" Model used for device resolution
base_url Base URL for local model providers
device_ids_yaml "data/home_assistant/device_ids.yaml" Device hierarchy (human-readable aliases)
device_ids_json "data/home_assistant/device_ids.json" Alias → HA entity ID mapping
default_room "" Room assumed when the user does not specify one

Requires: HA_API_KEY in .env


Random Tools — skills/random_tools.py

Utility skills for randomness and selection.

Function Description
flip_coin() Returns "heads" or "tails"
roll_dice(sides, count) Rolls one or more dice; sides defaults to 6
pick_number(min, max) Random integer in the given range
pick_from_list(items) Picks one item from a list
yes_no_maybe() Returns "yes", "no", or "maybe"

Note

yes_no_maybe and pick_from_list include explicit docstring clauses that instruct the LLM not to use them for factual or deterministic questions.


About — skills/about.py

Function Description
get_assistant_version() Returns the installed Kenzy package version