Open FileMaker Text Standard

The universal script format for FileMaker and AI.

`.fmscript` is a readable, deterministic representation of FileMaker scripts. It gives humans, IDEs, plugins, and AI agents one shared language for script logic that can round-trip back into FileMaker.

Open Not owned by one editor, one model, or one extension.
Round-trip Designed for stable conversion to and from real FileMaker scripts.
AI-ready Strict grammar rules make generated scripts testable.

A standard, not a product page.

FileMaker developers need one textual grammar that tools can share. `.fmscript` is the neutral bridge: terse enough for humans, strict enough for compilers, and explicit enough for AI agents.

01 / Deterministic

One logical step, stable boundaries.

Simple steps remain compact. Multi-line calculations, JSON payloads, and long comment steps are preserved when FileMaker developers actually use them.

02 / Native

FileMaker semantics stay intact.

The grammar preserves FileMaker's real naming, parameters, spacing quirks, and bracket forms instead of inventing a prettier language that cannot paste back.

03 / Portable

Any tool can adopt it.

Editors, plugins, model agents, documentation systems, and deployment tools can all target the same `.fmscript` surface without depending on ai2fm.

Built for the new FileMaker toolchain.

AI can already write useful FileMaker logic when it has a strict target. `.fmscript` gives agents a compact grammar and gives developers something they can inspect before it enters the Script Workspace.

  • Versionable script text for Git and code review.
  • Stable syntax for VS Code-compatible editors.
  • A shared target for ChatGPT, Claude, Gemini, Codex, and local models.
  • A practical export/import format for plugin authors.
  • Preservation of inline // and /* */ comments inside calculation bodies.
invoice-review.fmscript v0.90 grammar
# Generated text remains inspectable before it touches FileMaker.
Set Variable [ $cutoff ; Value: Get ( CurrentDate ) - 30 ]
Go to Layout [ "Invoices" (Invoices) ]
Enter Find Mode [ Pause: Off ]
Set Field [ Invoices::DueDate ; "<" & $cutoff ]
Set Field [ Invoices::Paid ; "No" ]
Perform Find
If [ Get ( FoundCount ) > 0 ]
  Perform Script [ Specified:From list; "Queue Collections"; Parameter: Get ( FoundCount ) ]
End If

Adopters and implementers.

The standard is intended for the whole FileMaker ecosystem. Tool authors can use `.fmscript` as a textual export target, import target, or AI instruction format.

Plugins Vendors

Plugin export/import alignment

Reserved for FileMaker plugin vendors that align text export with the `.fmscript` grammar.

IDE tooling

Editors and language servers

Syntax highlighting, snippets, diagnostics, folding, and language server support can all share one canonical grammar.

AI agents

Model-facing script generation

AI systems can target `.fmscript` directly, then let deterministic tooling validate and convert the result.

Start with the v0.90 grammar.

The first published spec captures the core rules: brackets, semicolons, field references, variables, comments, disabled steps, multi-line calculation bodies, and comment continuation.

core rule valid syntax
# Correct
Set Field [ Customers::FirstName ; "Ada" ]
Set Variable [ $name ; Value: Customers::FirstName ]
Perform Script [ Specified:From list; "Normalize Customer"; Parameter: $name ]

# Correct: inline comments inside calculation bodies
Set Variable [ $payload ; Value: JSONSetElement (
  "{}" ;
  [ "customer" ; Customers::Name ; JSONString ] ; // visible to the developer
  [ "active" ; 1 ; JSONBoolean ] /* FileMaker accepts this */
) ]

# Incorrect
Set Field Customers::FirstName = "Ada"
Set Variable $name = Customers::FirstName
Perform Script "Normalize Customer"