What it won't do and what it asks first
The Assistant can do most of what you can do in Frame Job, but a few jobs stay with you. It won’t record, close its own project or send audio to the cloud, and it stops to ask before it exports, saves, copies media or writes a file to a path it chose.
- Where
- Inspector ▸ Assistant tab, the row headed “The assistant asks first:”
- Needs
- An Anthropic API key. See Set up the Assistant.
- Agent tools
record_screenclose_projecttranscribetranscribe_for_fillersexportexport_captionssave_projectconsolidate_mediaexport_graphicnew_project_from_rangemake_vertical_versionnew_projectrender_framerender_graphic
Tools it will not call
Section titled “Tools it will not call”The Assistant works by calling tools, one for each job. Four jobs are yours to do yourself.
| The job | Tool | Why | Do it with |
|---|---|---|---|
| Record the screen or a camera | record_screen |
Recording needs a person at the Record button. | File ▸ New Recording… (⌥⌘N) |
| Close the project | close_project |
Closing the project would close the window the conversation lives in. | File ▸ Close (⌘W) |
| Transcribe in the cloud | transcribe with the AssemblyAI engine |
Audio leaves your Mac only when you choose it, with the price in front of you. | File ▸ Generate Captions… |
| Transcribe for filler words | transcribe_for_fillers |
The same: it uploads audio to the cloud. | Clip ▸ Remove Filler Words… |
record_screen, close_project and transcribe_for_fillers are taken out of what the Assistant can see, so it can’t call them. transcribe stays, because transcribing on this Mac is allowed, and only a call that names the cloud engine is stopped.
If one of the four is called anyway, it doesn’t run. The transcript shows a failed: line, “tool is not available to the assistant:” and the reason, which names the menu item to use instead. For the cloud engine the line starts transcribe with engine "assemblyai".
Tools it asks about first
Section titled “Tools it asks about first”Before it writes a movie, a caption file, a graphic package, the project, or anything else to a path it chose, the Assistant waits for you.
-
The row headed “The assistant asks first:” appears in the Assistant tab, with a sentence saying what will happen, and Allow and Deny buttons. See what each question reads.
-
Read the sentence. A capitalised REPLACES means a file is already there.
-
Click Allow to run the tool, or Deny to decline.
Nothing runs until you click Allow. A question has no time limit, and it waits until you answer. You answer with a click only: no key answers it, and ↩ in the message field beeps. While a question waits, the Send button reads Stop.
The transcript keeps a record of each answer, as Allowed: or Declined: and the sentence.
What each question reads
Section titled “What each question reads”The first five tools in this table ask whenever they would write. The last five ask only when the Assistant gives them a path: without one they write no project package, or only a temporary file.
| Tool | The question reads |
|---|---|
export |
“export writes path”, or “export REPLACES path” when a file is already there |
export_captions |
“export_captions writes path”, or “export_captions REPLACES path” |
save_project |
“save_project writes path”, or “save_project REPLACES path”, with .framejob added when it’s missing |
consolidate_media |
“consolidate_media copies every referenced file into package/media” |
export_graphic |
“export_graphic writes path”, or “export_graphic REPLACES path”, with .fjgraphic added when it’s missing |
new_project_from_range |
“new_project_from_range writes path”, with .framejob added when it’s missing |
make_vertical_version |
“make_vertical_version writes path”, with .framejob added when it’s missing |
new_project |
“new_project writes path”, or “new_project REPLACES path”, with .framejob added when it’s missing |
render_frame |
“render_frame writes path”, or “render_frame REPLACES path”, with the format’s extension |
render_graphic |
“render_graphic writes path”, or “render_graphic REPLACES path”, with .png added when it’s missing |
The path in the sentence is the file the tool will write, with the extension Frame Job adds or corrects, and REPLACES means something is already at that file. A ~ in the path is expanded before the question is asked, so the sentence shows the full path.
A few answers depend on what’s on disk:
- Saving a project that’s already on disk reads “save_project REPLACES path”, because the package is there. That’s the normal question for an ordinary save.
- A scope
render_frameis asked for is written beside the picture, as path.waveform.json for a waveform. When that file is already there, the sentence goes on “, and REPLACES path.waveform.json”.
Frame Job doesn’t ask about a call it can only refuse because of its path. The Assistant gets the reason instead, and nothing is written:
- A call with no path where one is needed:
export,export_captionsandexport_graphic, andsave_projectorconsolidate_mediain a project that has never been saved.consolidate_medianeeds the project saved first. - A path another open project holds.
- For
new_project_from_rangeandmake_vertical_version, which never replace anything, a path with something already there. The Assistant is told to choose a new path.
A question can still end in a refusal for another reason, such as a preset Frame Job doesn’t have or a folder that doesn’t exist, and nothing is written after Allow. If an argument of export can’t be read, the sentence keeps the path as the Assistant gave it.
File writes that do not ask
Section titled “File writes that do not ask”Some tools write files without a question.
| What it does | Tools |
|---|---|
| Writes a rendered frame, a PNG unless another format is asked for, to a temporary file, when the call names no path | render_frame |
| Writes a graphic’s contact sheet as a PNG to a temporary file, when the call names no path | render_graphic |
| Writes modules, fonts and assets into the project’s graphics folder | write_graphic, import_graphic_font, import_graphic_asset, import_graphic |
import_graphic replaces nothing: a name that’s already taken gets a suffix, and a picture whose name clashes stops the import.
The dot on the tab
Section titled “The dot on the tab”While a question waits, a small dot in the accent colour shows on the Assistant tab title, whichever inspector tab you’re on. It sits to the right of the title, or raised at the title’s top-right corner when the tab is narrow.
The dot takes no clicks, so a click on it reaches the tab underneath. Frame Job doesn’t switch tabs for you. If the inspector is hidden, View ▸ Assistant (⌃⌘A) shows it and picks the tab.
Declining
Section titled “Declining”Deny tells the Assistant you declined. The tool doesn’t run, and the Assistant is told not to try it again in the same turn unless you ask. The transcript shows a failed: line, “The person declined:” and the sentence, beside the Declined: record.
A question also counts as declined when the turn or the conversation ends under it, and the transcript says what ended it:
| What happened | The transcript reads |
|---|---|
| You clicked Deny | Declined: |
| You clicked Stop | Declined (stop): |
| A change of key or model in Settings ended the conversation | Declined (close): |
| The helper, the small program that talks to Anthropic, stopped | Declined (helper): |
Clear and closing the window decline it too, and those take the transcript with them.
A waiting question holds only its window
Section titled “A waiting question holds only its window”An unanswered question holds that window’s Assistant and no other’s. Other windows’ Assistants and agents over MCP keep working while it waits, and you can go on editing.
MCP agents are not bound
Section titled “MCP agents are not bound”These rules belong to the Assistant. An agent connected over MCP drives the same tools directly, so it’s never asked first, and none of these tools is withheld from it.