Skip to main content
Glama
Jashan-Mshadow

sommus-laptop

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GMAIL_ADDRESSNoGmail address for the Gmail node (IMAP/SMTP).
ANTHROPIC_API_KEYYesYour Anthropic API key required for the agent loop.
GMAIL_APP_PASSWORDNoApp password for the Gmail account (16-character).
TELEGRAM_BOT_TOKENNoTelegram bot token from BotFather.
TELEGRAM_ALLOWED_IDSNoComma-separated list of allowed Telegram chat IDs (empty initially).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_batteryA

Get the MacBook's battery percentage, charging state, and time remaining.

get_volumeA

Get the Mac's output volume (0-100) and whether sound is muted — also answers "is it loud".

set_volumeA

Set the output volume and unmute.

Args:
    level: Volume from 0 (silent) to 100 (maximum).
set_muteA

Mute or unmute sound output without changing the volume level.

Args:
    muted: True to mute, False to unmute.
list_appsA

List the apps currently open (the ones shown in the Dock), which one is in front, and which can't be quit.

open_appA

Open an app, or bring it to the front if it's already running.

Args:
    name: The app's name as it appears in /Applications, e.g. "Spotify", "Google Chrome", "Notes".
quit_appA

Quit a running app. The app may still ask to save unsaved work.

Args:
    name: The app's name, e.g. "Spotify". Use list_apps first if unsure of the exact name.
open_urlB

Open a web page in the default browser.

Args:
    url: A full http:// or https:// URL.
media_controlA

Play, pause or skip whatever is playing (Spotify, Music, YouTube in a browser...).

Args:
    action: "pause" and "play" do exactly that (use these when asked to pause, stop, play or resume);
        "play_pause" toggles; "next" and "previous" skip tracks.
notifyA

Show a macOS notification banner right now. For a reminder at a later time, use create_reminder.

Args:
    title: Short bold heading.
    message: Body text.
lock_screenA

Lock the screen immediately. Apps keep running; unlocking needs the password or Touch ID.

sleep_displayA

Turn the display off. Apps and downloads keep running.

sleep_computerA

Put the whole MacBook to sleep. Sommus stops responding until the lid is opened or a key is pressed.

get_brightnessA

Get the built-in display's brightness as a percentage.

set_brightnessA

Set the built-in display's brightness (external monitors aren't supported).

Args:
    level: Brightness from 0 (darkest) to 100 (brightest).
get_wifiA

Check whether Wi-Fi is on and which network the Mac is joined to.

set_wifiA

Turn Wi-Fi on or off. Turning it off cuts the internet, including Sommus's own connection.

Args:
    on: True to turn Wi-Fi on, False to turn it off.
press_keysA

Send a keyboard shortcut to an app — for actions with no dedicated tool.

Args:
    combo: Keys joined by "+", e.g. "cmd+s", "cmd+shift+t", "cmd+w", "escape", "left".
    app: App to bring to the front first, e.g. "Google Chrome". Recommended.
get_now_playingA

Get the track and artist currently playing in Spotify or Music.

list_shortcutsA

List the macOS Shortcuts available to run. Use this to find capabilities Sommus has no tool for.

run_shortcutA

Run one of the user's macOS Shortcuts. This covers things with no dedicated tool, such as Focus modes.

Args:
    name: The shortcut's name — call list_shortcuts first if unsure.
create_reminderA

Add a reminder in the Reminders app. Unlike a notification, this persists and syncs to the iPhone.

Args:
    title: What to be reminded about.
    due: Optional date and time as "2026-09-14 20:00". Omit for a reminder with no time.
    list_name: Optional Reminders list; omitted means the default list.
list_remindersB

List the user's unfinished reminders.

Args:
    limit: How many to return (default 10).
get_clipboardA

Read what's currently on the clipboard.

set_clipboardC

Put text on the clipboard, ready to paste.

Args:
    text: The text to copy.
find_filesB

Search the Mac for files and folders by name (Spotlight).

Args:
    query: Part of the file name, e.g. "ECE 150", "resume", "lab 2".
    limit: How many results (default 10).
    folder: Optional folder to search inside, e.g. "~/Documents".
read_pdfA

Read a PDF as text, scanned ones included — far cheaper than screenshotting page by page.

Args:
    path: Path to the PDF, e.g. "~/Downloads/MATH117-L3-F26-Fong.pdf".
    pages: Which pages, e.g. "1-5", "3", "2,4,7". Omit for the whole file.
    ocr: Read scanned pages with OCR when they have no text layer (slower, ~3s a page).
list_embedded_filesA

URLs of files embedded in a page (PDF viewers, iframes) — the real file behind a viewer.

LEARN shows PDFs inside a viewer, so saving the tab saves the wrapper page. Open the URL this
returns, then save that tab instead.

Args:
    tab: Tab number, window.tab, or text from its title or URL.
save_browser_tabA

Save a browser tab's file to disk (Cmd+S) — the way to get a PDF that sits behind a login.

Follow with read_pdf to read what was saved.

Args:
    tab: Tab number, window.tab, or text from its title or URL.
    folder: Where to save (default ~/Downloads).
read_fileB

Read a text file, or list a folder's contents. Long files are truncated.

Args:
    path: Full path, e.g. "~/Documents/notes.md".
append_to_fileA

Add a line to the end of a text file, creating the file if needed.

Args:
    path: Full path to the file.
    text: The line to append.
open_fileB

Open a file or folder in its default app (Finder for folders, Preview for PDFs...).

Args:
    path: Full path to the file or folder.
list_browser_tabsA

List every open Chrome tab with its window.tab number, title and URL.

read_browser_tabB

Read the visible text of a Chrome tab — the way to see what's on a page.

Args:
    tab: Tab number ("3"), window.tab ("1.3"), or text from its title or URL ("MATH 115").
list_page_linksA

List a page's links and buttons as "text -> url". Use this instead of guessing where to click.

Args:
    tab: Tab number, window.tab, or text from its title or URL.
    contains: Optional filter, e.g. "L3" or "download".
click_page_linkA

Click a link or button on a page by its visible text — works inside web apps like LEARN and Gmail.

Args:
    tab: Tab number, window.tab, or text from its title or URL.
    text: Visible text of the link or button, e.g. "MATH117-L3-F26-Fong".
compose_emailA

Open a pre-filled Gmail draft in the browser for Jashan to look over. To send, use send_email.

Args:
    to: Recipient address.
    subject: Subject line.
    body: Message text.
close_browser_tabsA

Close Chrome tabs. List them first, then pass the ones to close. Closed tabs come back with Cmd+Shift+T.

Args:
    tabs: Each a window.tab number ("1.4") or text from a title or URL ("Netflix"). Prefer numbers.
focus_browser_tabA

Bring a Chrome tab to the front.

Args:
    tab: Tab number, window.tab, or text from its title or URL.
type_textA

Type text into an app — for writing into a document, a form, a chat box.

Keystrokes go to whatever is in front, so pass `app` (or focus it first) when the text is meant
for a particular one. Don't use this to run shell commands; use run_shell, which returns output.

Args:
    text: The literal text to type.
    press_return: True to press Return afterwards (submits the line).
    app: App to bring to the front first, e.g. "Google Chrome", "Notes". Strongly recommended.
run_shellA

Run a shell command and read its output. The way to do anything with no dedicated tool.

Commands run as Jashan from his home folder. sudo won't work — there's nobody to type a password.

Args:
    command: The command line, e.g. "ls ~/Downloads", "git -C ~/x status", "brew list | head".
    timeout: Seconds to allow before giving up (default 60).
screenshotA

Take a screenshot and look at it. Use this to see an app's state, then click what you see.

Click coordinates refer to this image.

clickA

Click somewhere on screen, using coordinates from the most recent screenshot.

Args:
    x: Horizontal position in the screenshot.
    y: Vertical position in the screenshot.
    double: True for a double-click.
waitA

Pause before the next step — for pages, apps or downloads that need a moment.

Args:
    seconds: How long to wait, up to 10.
download_urlA

Download a file straight to disk. Works for public URLs; pages behind a login don't.

Args:
    url: Direct http(s) link to the file.
    folder: Where to save it (default ~/Downloads).
    filename: Optional name to save it as.
find_contactA

Look up someone's phone number and email in Contacts. Use this before messaging or emailing a person.

Args:
    name: All or part of the name, e.g. "Kuljot", "didi", "mom".
list_contactsA

List everyone in the Contacts app with their numbers and emails.

send_messageA

Send an iMessage. This reaches another person and can't be unsent.

Args:
    to: Phone number or Apple ID — look it up with find_contact when given a name.
    text: The message body.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 48 tools

Disambiguation4/5

Most tools target a clearly distinct resource+action (battery, volume, brightness, wifi, clipboard, apps), and descriptions proactively disambiguate tricky pairs like notify vs create_reminder, sleep_display vs sleep_computer, and type_text vs run_shell. A few pairs remain close (click vs click_page_link, save_browser_tab vs download_url vs list_embedded_files, list_page_links vs read_browser_tab), but the guidance largely resolves them.

Naming Consistency4/5

The set sticks mostly to a verbose verb_noun pattern (get_battery, set_volume, list_apps, create_reminder, read_browser_tab), which is highly predictable. Minor deviations exist: bare verbs (notify, click, wait, screenshot), one noun_verb (media_control), and slightly inconsistent qualifiers (page vs browser_tab for the same concept).

Tool Count2/5

At 48 tools this is a very heavy surface, well beyond the 15-25 range that already feels crowded, even accounting for the broad macOS-automation domain spanning browser, files, system, media, contacts and messaging. Individual tools are mostly justified, but the sheer count raises selection cost and overlap risk.

Completeness4/5

Coverage is broad and self-aware, with escape hatches (run_shell, run_shortcut, press_keys) for anything lacking a dedicated tool, and files/reminders/system state reasonably covered. Gaps remain: compose_email references a nonexistent send_email, and reminders/contacts/messages lack full update-delete lifecycle coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues