Let an assistant search, tag and export your footage

StoryFolder —

Part of: StoryFolder 0.4: AI Autofill, local transcription, and an assistant that can see your library

Last updated: 2 September 2026.

Connect an AI assistant lets a desktop AI client read and change your StoryFolder library by talking to the app while it is running. New in StoryFolder 0.4. Ask it what is in the library, have it search across every project for a phrase somebody said on camera, have it look at the actual frames, have it write a field across a run of shots, and then open version history and see its edits badged as its own and roll them back. Three clients are set up from inside the app: Claude Desktop, Claude Code and ChatGPT Codex. StoryFolder has to be open, the connection between the assistant and the app runs on your own machine, and whatever the assistant asks for it then sends to its own AI provider, exactly as if you had pasted it into the chat box yourself.

Which assistants can connect?

Three, each with its own setup path in Settings → MCP Server or behind the Connect an AI assistant button in the header: Claude Desktop, Claude Code and ChatGPT Codex.

Client How it connects Setup
Claude Desktop A one-click extension you download and double-click; StoryFolder writes the config Set up Claude
Claude Code A command the panel runs for you, or copies for you to paste Same panel, Claude Code tab
ChatGPT Codex A downloaded folder plus a codex mcp add command; needs Node 18 or newer on the machine, which Codex does not bring its own copy of Set up ChatGPT

Codex is where the ChatGPT answer gets specific. You reach StoryFolder from the Codex app, the Codex command line, or the Codex sidebar in an editor like VS Code, signed in with the ChatGPT account you already have. It does not appear in the ChatGPT desktop app's own chat window. Claude Desktop is the route that has been run end to end; the Codex route is confirmed as far as reading the setup and starting StoryFolder.

Web and mobile clients cannot connect at all, and that is structural rather than a gap in the list: the connector talks to a server on your own machine, and a browser tab on someone else's cannot reach it.

What can the connector actually do?

Sixteen tools, in five jobs: look around the library, find and see shots, write metadata, import and export, and read the version history. Seven of the sixteen write and nine only read. The protocol underneath is MCP, the Model Context Protocol, which is the standard way an assistant discovers what a program will let it do and then calls it; you never see it.

Look around. list_projects and get_project give the library and one project's shot list. list_folders and list_metadata_fields give the structure and your schema, which is how an assistant learns that Shot Size exists and what its options are before it tries to write one.

Find and see. search_frames is the one that does the work. Give it a project or leave the project out and it searches every project that is not in the Trash, in one call rather than one call per project. A plain query goes at both the metadata a human typed and the transcript of what was said, so "which shots mention the spring sale" is a single question and the assistant does not have to know which layer the answer is in. Every match says which of the two it came from. You can also match a named field with contains, equals, one_of, is_set or not_set, or stack several conditions that must all hold. get_frames then returns actual images, up to twelve per call, so the assistant can look at a shot rather than reason about its label.

Write. set_frame_metadata annotates shots. set_video_metadata and set_video_metadata_batch do the video-level fields, one project or many. create_metadata_field adds a field to your schema. update_project renames a project or moves it to another folder.

Bring in and send out. import_video imports. create_export starts an export and returns a job id instead of blocking, and get_export_job and list_export_jobs follow it, so a PDF storyboard renders while you carry on working.

Audit. list_versions reads the project's version history, which is how you ask an assistant what it changed and get an answer from the record rather than from its memory of the conversation.

How does the local connection work?

The app publishes a handshake file when it starts, and the connector reads it before every call. There is no port to pick, no key to paste and no account to make.

When StoryFolder's worker comes up it writes a small file into your user folder holding the port it took and a token for that launch, readable only by you. The connector reads that file on every request rather than caching it once, because a worker that is restarted issues a new token and a cached one would stop working for the rest of the session. Every request goes to 127.0.0.1, the loopback interface, which does not leave the machine.

Two consequences follow. If StoryFolder is not running, every tool says so in a sentence rather than failing obscurely, and the fix is to open the app. And the transport being local is not the same as the conversation being local: the assistant is a program made by somebody else, and what it retrieves it may send to its own provider. Treat a confidential shot note the way you would treat anything you paste into a chat window. Read-only mode does not change that; it stops writing, not reading.

What happens when an assistant changes something?

It goes through the same route your own edits do, so it lands in version history badged as an assistant's work.

Writes from the connector go through the same per-video routes your own edits do, so they pass the same capture step that records a restore point for a manual edit. A request that would change nothing captures nothing, which is why an assistant re-sending a value it already wrote does not litter the history. The header identifying the connector becomes the actor on that point, and version history draws a badge on any point whose actor is not you. So the history is not just "something changed at 14:32"; it is "the assistant changed this, here is what it touched, here is the state before".

One request is one restore point, not one per shot. An assistant tagging twenty shots sends that as one call, so it is one entry and one undo, the same as a multi-select edit made by hand. Previewing a point writes nothing at all, and reverting captures the current state first, so a revert you regret is itself revertible. What version history covers and what it does not is the fuller account, and the exclusion worth knowing here is that AI Autofill creates no restore point at all. An assistant's writes are recoverable; an Autofill run is not.

Edits also show up live in the open window. You do not have to reload anything to watch a board fill in.

What changes in read-only mode?

Seven tools disappear. Read-only is an environment switch, exposed as a checkbox during setup, and it removes the writing tools from the list the assistant is offered rather than refusing them when they are called.

What goes: update_project, create_metadata_field, set_frame_metadata, set_video_metadata, set_video_metadata_batch, import_video and create_export. What stays: listing projects and folders, reading a project, reading your metadata fields, searching, fetching frames, checking and listing exports that already exist, and reading version history.

The assistant is not asked to behave and then trusted to. The tools are not in its list, so there is nothing to be talked into. You can change your mind later; it is a checkbox, not a commitment.

How do you point an assistant at a 461-shot project safely?

Narrow on the server side, then act on explicit ids. The failure mode is a model asked to consider everything at once, and the fix is to make every step name what it is operating on.

  1. Ask for list_projects and pick the project you mean by its id.
  2. Have it run search_frames scoped to that project with a real condition, and read the count it comes back with. A search that returns everything is not a search.
  3. Have it fetch the frames for a dozen of those shots and actually look at them before it writes anything.
  4. Have it write to the shots it just named, not to "the rest".
  5. Ask it what it changed, then open version history and check the badge and the entry against what you expected.
  6. If an export is the point, let create_export queue it and follow the job rather than waiting on it.

Twelve frames per call is the hard edge here, so a large board is several passes by construction. That is a feature of the pacing: an assistant that has to ask for shots in batches is one whose work you can still follow.

Where does this stop?

At the edge of your own library, and at the edge of a conversation you started. The connector reads the running app, not your drives, and nothing happens in the background when you are not talking to it.

There is no shared permission model, no user accounts, no watch folder, no ingest, no proxy storage and no record of where your media lives on which disk. That is a different category of product and StoryFolder is not it; what a small team actually needs before reaching for one is a separate question. Plan limits still apply to what an assistant does: it cannot export a spreadsheet your plan does not include, and it cannot create custom fields on a plan without them.

And the assistant can be wrong. Version history makes its work auditable; it does not make it correct.

FAQ

Does StoryFolder work with ChatGPT? Through Codex, OpenAI's assistant tool, in the Codex app, the CLI or an editor sidebar, signed in with your ChatGPT account. The ChatGPT desktop chat window is not supported yet.

Does the assistant get my whole library? No. It gets what it asks for during the session: search results, the fields you have, and up to twelve frames per call. Whatever it receives, it may send on to its own AI provider.

Can I stop it changing anything? Yes. Read-only mode removes all seven writing tools from the list it is offered, leaving nine that read.

Can an assistant import and export? Yes, with import_video and create_export, and it follows an export as a background job rather than waiting on it. Plan limits on outputs still apply.

Can I undo an assistant's edits? Yes. A write that changes something mints a restore point badged as the assistant's, and one request is one entry, so twenty shots tagged at once is one undo.

Does StoryFolder have to be open? Yes. The connector reads a handshake file the running app publishes, and if the app is closed every tool says so.

Does it cost anything? Connecting an assistant is free on every tier. What you pay for is your assistant, and the plan limits that already apply to exports and custom fields.

Can I connect from Claude or ChatGPT on the web or my phone? No. The connector runs on your computer and answers on loopback, which a browser tab or a phone cannot reach.

← All articles