Skip to content
COEY
Capabilities

Operate and scope

What runs, on which Mac, over which folders, and for whom: the job queue, profiles, models and access.

The job queue

Check one background job by its job_id and return right away

Wait until a background job finishes, or until timeout seconds pass

Queue updates newer than after: queued, started, 25/50/75% progress, done, error and cancelled. Includes other agents' jobs, so you can see why yours is waiting

What is running, what is queued and in what order, and what finished recently, across all AI apps, with how long each kind of job has usually taken on your Mac

Queue a long job for later: tonight, in eight hours, at 2am

Everything scheduled to start later, soonest first, plus what ran recently

Cancel a scheduled job before it starts

Stop one job by job_id, running or queued, whichever AI app started it

Stop every running and queued job on this Mac, from every AI app

Set how many jobs run at once, from 1 to 3

Files in Scratch Outputs, newest first. Renders go here when you do not pass an out_path in a granted folder

The size of Scratch Outputs: {path, bytes, human, files}

Delete temporary files from Scratch Outputs. Data, Library Renders and Downloaded Media are never touched

Delete Scratch Outputs files automatically after a number of days

Ask the user what to keep. Suggests, file by file, whether to keep it for reuse, keep it with the project, or throw it away

Save the user's answer to suggest_keeps and act on it

What is using your disk, by type: source media, metadata, downloads, renders, scratch, design library, projects, catalog, and deleted files not yet cleared

The biggest files, largest first, optionally within one category or media type

Each drive the library uses: total space, free space, and how much GroundSlate uses

Where space can safely be freed, ranked by how safe it is first and size second

This Mac, and what may reach it

Say hello to GroundSlate. Called when the user pastes "tell GroundSlate MCP hello" from the app's setup screen, or says "tell GroundSlate hello"

Make a first video from one sentence, with no footage. Called when hello returns a first_video block, or whenever someone wants to see GroundSlate make something before anything is indexed. It renders a short film on your Mac and opens it for approval

The full documentation for one tool, beyond the short description an agent gets when it connects. For a first call to a tool, or after a refusal the agent does not recognise

A read-only view of access: server settings, default limits, every token with its usage, and the connected sessions

What your Mac has and what is missing: ffmpeg, Ollama and the chosen models, Playwright and Chromium for HTML rendering, and the face engine

Your Mac's memory right now: {total_gb, available_gb, used_pct}

How many tokens the local vision and reasoning models have used in this profile

Whether this install is ready, in one read-only call. The same check the first-run screen shows

The models available on the current engine (MLX by default, or Ollama) and which are selected

Choose the model used for indexing and analysis. A Hugging Face repo id from the curated list (such as mlx-community/gemma-4-12B-it-4bit) selects MLX; an Ollama tag selects Ollama

Choose the text model used for summaries

Tune the local vision engine to this Mac's speed. Use it when the log shows 'fallback'

You choose which folders agents may use, in the app under Data then Allowed Folders

Where GroundSlate saves the files it makes

create_tokenIn the app

You create access tokens yourself, in the app's Access/Server settings

Every access token with its usage (calls, minutes, last seen), limits and live sessions. Read-only

revoke_tokenIn the app

You revoke access tokens yourself, in the app's Access/Server settings

You set token limits yourself, in the app's Access/Server settings

set_server_bindIn the app

Opening the server to your local network (0.0.0.0) instead of this Mac only is your choice, made in the app's Access/Server settings

Set what happens when media is unavailable

You set how long the activity log is kept, in the app under Config then Data then Activity expiry

set_data_dirIn the app

You move the library yourself, in the app's Data Home settings

You move Downloaded Media yourself, in the app

set_renders_dirIn the app

You move Library Renders yourself, in the app

set_scratch_dirIn the app

You move Scratch Outputs yourself, in the app

List your profiles. Each is a separate, self-contained library (clips, people, relationships, events, projects, watch folders) in its own folder

Create a new empty profile, for example to keep family footage apart from a YouTube channel. Does not switch to it

Make a profile active by id (prof_…) or name. Every tool then uses it, and the app on screen switches too

Change a profile's name. Its id and folder stay the same, so nothing breaks

Archive a profile. Nothing is deleted: its folder moves to <library>/.archived-profiles/ and can be moved back to restore it

Set, replace or clear a profile's picture in the profile switcher

Faces that detection skips because someone blocked them, as in the People page's "Blocked faces"

Remove one block by its bid, so matching faces are recognized again

Remove many blocks at once. With no source, clears every block except ghosts that can be restored (use restore_person for those)

Keep an at-risk block but stop the app's warning about it, by bid

Turn a clip's GPS into a place name, offline and private, using a built-in list of cities

Fix place labels that name the wrong city, without re-indexing

Your own service keys

The keys you added in the app, under Data then Provider Keys, by name, with the hosts, methods and upload size each allows. Never the key itself. Keys belong to the profile they were added in, and switching off the Provider gateway on that tab stops them all

Call a web service with one of your keys. GroundSlate attaches the key on the way out and refuses any reply that echoes it back. A clip or file from the library can be the upload. Text and JSON replies come back, up to a size limit; a reply that is a file does not

Check on a provider_request that is still running

Web capture

Read your web capture settings: whether it is on, the site mode, and the site lists

Ask you to allow web capture of a site. This grants nothing by itself

Only you can approve a site request

Only you can allow a site, in the app

Only you can block a site, in the app

Only you can turn web capture on or off

Only you can choose the site policy: block all, allow all, or a list

This list follows the current release. Something missing, or a description that is out of date? Tell us.