---
title: Organise and index
summary: Bring footage in, keep it findable when files move or drives go offline, and group it into events and projects.
eyebrow: Capabilities
accent: arc
order: 6
outcome: organise
---

## Getting the library in

| Tool | What it does |
| --- | --- |
| `index_folder` | Index every unindexed media file in a folder in one call, the same way `index_video` does |
| `index_video` | Index one video with Gemma, analyzing it in chunks |
| `index_image` | Add one still image to the Library, SVG drawings included, described so it can be searched by what it shows |
| `index_audio` | Add one audio file to the Library |
| `process_video` | Process a video end to end: find and confirm faces, then index, analyze style and summarize |
| `probe` | Read a file's format and streams with ffprobe. `path` can also be a clip id, filename or stem |
| `scene_detect` | Find the cuts in a video. `path` can also be a clip id, filename or stem |
| `reindex_clips` | Re-analyze clips with a chosen vision model, and find analyses that are out of date after a model change |
| `rebuild_catalog` | Rebuild the search catalog from every clip record on disk |
| `catalog_stats` | Library totals: clips indexed, hours of footage, and how many have people and GPS |
| `list_media` | List video and audio files in an allowed folder, up to `limit` |
| `list_volumes` | The drives your footage lives on and which are connected right now, so you can plan around an unplugged drive |
| `list_folders` | The folders GroundSlate may read and write: the ones you granted plus every profile folder |
| `add_watch_folder` | DISABLED for MCP clients. You choose which folders are indexed automatically, on the app's Watch page |
| `list_watch_folders` | Every watch folder with its total, processed and pending counts and its face setting, plus the library location |
| `pause_watching` | Pause or resume automatic indexing for all watch folders |
| `remove_watch_folder` | DISABLED for MCP clients. You remove watch folders yourself, on the app's Watch page |
| `scan_and_relocate` | Find clips whose files moved and point the library at the new location |
| `import_asset` | Save a video, image, logo or audio file as a named asset in this profile, so later renders can use it by name |
| `fetch_media` | Download an AI-generated file from its provider into the library. For a file you found on the web, use `fetch_asset` |
| `fetch_asset` | Download a file you found on the web into the library: a photo, logo, press image, illustration, video or audio file |
| `delete_asset` | Delete a saved asset by name, file included |
| `get_asset` | Get a saved asset's file path by name, for use in a render |
| `list_assets` | This profile's saved assets (logos, watermarks, b-roll, photos, audio stingers), each with its kind, size and path |
| `media_metadata` | What the file itself records: size, duration, dimensions, frame rate, codec, camera, date shot and GPS |
| `migrate_layout` | Move library metadata from one flat folder into dated folders (`YYYY/MM/DD/&lt;clip_id&gt;/`), which Finder and backups handle better once there are thousands of clips |
| `heal_still_records` | Repair Library entries for photos that were processed as videos |
| `stamp_content_ids` | Add a content fingerprint to clips that lack one |
| `retokenize_library` | One-time upgrade that lets older clips survive being renamed |
| `volatile_source_audit` | List clips that depend on a folder that gets emptied. Read-only; nothing is copied |
| `backfill_audio_peaks` | Precompute each video's loudest moments so Quick Cut runs faster |
| `commit_to_library` | Move a finished file from Scratch Outputs into Library Renders. The file moves, so use the new `path` this returns |
| `soft_delete_media` | Move library media to Deleted Media. Never permanent, and the only way to delete library media from an agent |
| `restore_media` | Bring media back from Deleted Media, undoing `soft_delete_media` |

## Collections

| Tool | What it does |
| --- | --- |
| `create_collection` | Create a Library or People collection, a simple ordered list lighter than a project. `kind` is "media" (the default) or "people" and cannot change later |
| `list_collections` | List your Library and People collections |
| `get_collection` | One collection by id: its members in order (including unavailable ones), cover, counts and dates |
| `add_to_collection` | Add clips or people to a collection in the order given. Anything already there keeps its place and is not added twice |
| `remove_from_collection` | Remove clips or people from a collection without deleting them |
| `reorder_collection` | Set a collection's order to the list you pass |
| `rename_collection` | Rename a collection. Its id stays the same |
| `delete_collection` | Delete a collection. The clips and people in it are not deleted |

## Events and projects

| Tool | What it does |
| --- | --- |
| `cluster_events` | Group indexed media into events by capture date and location, then name and summarize the new events with AI |
| `create_event` | Create an event yourself, optionally from a list of clips |
| `delete_event` | Delete an event. Its clips stay in the library and in every other event, project and collection |
| `get_event` | One event in full, with details about its clips. `list_events` and `search_events` give the short version |
| `list_events` | List events, newest first, with dates, places, cover and clip count, a page at a time |
| `name_event` | Have AI title one event from its dates, the people in it and its clip summaries. Stored as `ai_name`; a name you set is left alone |
| `name_events` | Have AI title every event that has no `ai_name` yet, one after another |
| `rename_event` | Set your own title on an event. It is shown instead of the AI title, which is kept as a suggestion |
| `summarize_event` | Write and save a one- or two-sentence AI summary of what an event was |
| `summarize_events` | Summarize every event that has no `ai_summary` yet, one after another |
| `event_digest` | A text summary of a whole event (name, dates, places, and each clip with its people and summary) to paste into an AI assistant |
| `event_suggestions` | Clips that probably belong to an event because they fall within or near its time and place, ranked for you to confirm. Never added automatically |
| `list_event_skipped` | Clips you skipped as suggestions for an event, so you can bring them back |
| `unskip_event_media` | Bring skipped clips back as suggestions for an event. Check `removed`, not `skipped_count` |
| `audit_event_names` | Find event titles and summaries that name someone who is not in your people catalog, a name the AI made up |
| `set_event_cover` | Set an event's cover to one of its clips |
| `add_media_to_event` | Add clips to an event. Re-clustering will not remove them |
| `remove_media_from_event` | Remove clips from an event. Removing the last clip deletes the event |
| `add_event_note` | Add a note to an event. Events can hold several notes, each with an author |
| `add_moment` | Mark a favorite moment at `t` seconds in a clip. This is separate from favoriting the whole clip |
| `remove_moment` | Remove the favorite moment nearest `t` seconds |
| `create_project` | Create a project that groups people, events and clips across times and places |
| `duplicate_project` | Copy a project, with its members, kind, summaries, tags, cover and notes, under a new id named '&lt;name&gt; copy' |
| `get_project` | One project in full by id: members, regions, AI name and summary, stats and notes |
| `list_projects` | Every project in this profile, with its name, kind (personal or business), counts and notes |
| `add_media_to_project` | Add clips, and optionally people, events or avatars, to a project |
| `remove_media_from_project` | Remove clips, people, events or avatars from a project |
| `project_suggestions` | People, events and clips that probably belong to a project, ranked, each with the reason, for you to confirm |
| `dismiss_project_suggestion` | Reject a project suggestion so it is not proposed again |
| `list_project_outputs` | Files made for a project, newest first, as on its Outputs tab, each saying whether you marked it final |
| `remove_recent_output` | Remove a file from the Dashboard's Recent outputs list. The file is not deleted |
| `project_manifest` | What a project contains, how big it is, and whether anything is offline |
| `write_project_file` | Save text to a project's working folder |
| `read_project_file` | Read a text file from a project's working folder, so a new session can pick up where the last one stopped |
| `list_project_files` | Everything in a project's working folder, newest first, with path, area, size and whether each is text |
| `export_project` | DISABLED for MCP clients. You export a project yourself, with **Collect and Export** on its detail screen |
| `link_project_pm` | Link a project to an external project management tool |
| `unlink_project_pm` | Remove a project management link by `provider` or `link_id` |
| `member_project_notes` | Every project note about one person, event or clip, across all projects |
| `remove_member` | Undo a wrong automatic merge: pull one face source out of a person and rebuild their recognition from what remains |
| `add_project_note` | Add a note to a project. `title` is optional; `body` is the text |
| `edit_project_note` | Edit a project note. Anything you leave out stays as it was |
| `delete_project_note` | Delete one note from a project by `note_id`. Permanent |
| `pin_project_note` | Pin a project note to the top, or unpin it with `pinned=False` |
| `add_person_note` | Add a note to a person, shown on their Notes tab |
| `edit_person_note` | Edit a person note by `note_id`. Anything you leave out stays as it was |
| `delete_person_note` | Delete one note from a person by `note_id`. Permanent, with no undo |
| `list_person_notes` | Every note on a person, as on their Notes tab |
| `pin_person_note` | Pin a person note to the top of their Notes tab, or unpin it with `pinned=False` |
| `append_video_note` | Add a timestamped production note to a clip. Earlier notes are kept |
