amber-acue
The prompt-file format: the one reader acue studio and the acue book maker share, the .acue book both of them write, and editor support that marks a wrong line as you type.
- Status
- In use by acue studio, the acue book maker and Pinax
- Licence
- BSD-3-Clause
- Built with
- C ABIGoLSPOdinPython
- Part of
- Acue Media
- Source
- amber-acue

A prompt file is plain text. Most of it is the story, and a line that starts with two dashes tells the program what to do with the story around it:
--title Pip and the pond
--style soft watercolour, a small green frog with a red scarf
--scene a pond at first light, mist on the water
--image Pip sits on a lily pad and looks up at the sky
--image a wide shot, the pond and the reeds around it
--voice af_heart
Pip sat by the pond and waited for the sun.
amber-acue is the part that reads these lines. Both
acue studio and acue use it, so a
file means the same thing to each of them. A line that the program does not
use is skipped rather than refused, so one story can go to the picture flow,
the narration and the text model in turn. A line it should use but cannot read
does not stop the file: it becomes a warning with its line number and the word
to fix.
Books
A finished book is one .acue file: the pictures in order, the narration or
the soundtrack, short clips, the prompt files it was made from, and the facts
about each picture. acue studio and acue write them, and
Pinax opens them as a book. Inside it is an ordinary ZIP,
so any archive tool can look in.
In your editor
amber-acue comes with a language server, acue-lsp, and the pieces that
connect it to an editor. With it, a prompt file shows its mistakes as you type,
completes the directive names, explains each one when you hover over it, and
lists the pictures as an outline. It also highlights the directive lines and
leaves the story alone.
make nvim # acue-lsp into ~/.local/bin, and three files into your Neovim config
make lsp # build/acue-lsp, the server VS Code starts; put it on your PATH
make vscode # dist/acue.vsix, to install in VS Code
In Neovim, a .txt file under a prompts/ folder is read as a prompt file,
and :Acue reads any open file as one. VS Code needs one line in its settings
to say which files are prompt files, or a command reads the open one as a
prompt file. Helix works with a few lines in its own configuration. None of
this is in an editor’s extension store yet; the language server, the VS Code
extension, the Neovim files and the grammar are
downloads on acue.media.
From Go and Python
amber-acue is written in Odin, and it is also a C library: a static one to link
and a shared one to load, behind one header. Through it a program in another
language parses prompt files and writes .acue books.
To prove that this works, the same small program exists in Go and in Python. acue-watcher-go links the static library through cgo; acue-watcher-python loads the shared library with ctypes. Each watches a folder, parses a prompt file dropped into it, asks an SGLang image server for the pictures and writes the book. The program does nothing new: it shows the library working, and it is a start for anyone who wants to build on it.
Install
amber-acue is not a package of its own: acue studio, the acue book maker and Pinax build it in. The editor support and the Odin and C libraries are downloads on acue.media, or build from source.