Paper Instruments
Ultramarine API

Prompting and packages

Tune prompts using Feather Harness as a reference, and give the model the Paper packages.

Ultramarine was trained with large-scale non-verifiable rewards, so it has more expressive aesthetic and prose-writing sensibilities than traditional models. It is critical to tune your prompts carefully to get the most out of it. Test changes on your own tasks.

Start from Feather Harness

Feather Harness has examples of prompts we've tuned for internal testing. Start with its system prompts, profiles, and skills.

ProfileWhat it includes
trainA minimal system prompt, the original tool descriptions, and a skills catalog.
prodA production prompt for knowledge work covering scoping, evidence and sources, numbers and models, and deliverables, plus tool descriptions and a compaction prompt.

Both profiles include skills for Word, Excel, PowerPoint, and PDF work, each a SKILL.md entry point with API references and scripts. prod adds production guidance for each format and a shared design guide.

See how the harness works for the agent loop, tools, skills, and context compaction.

Request settings

  • We default to max thinking (reasoning effort) and recommend it for best results. See reasoning.
  • Start with default sampling settings.
  • Keep repeated prompt prefixes stable to improve cache hits.

Packages

Ultramarine was trained in a sandbox built from the python:3.13-slim Debian image. Starting from that image, install these where the model runs code.

Python

PackageUsed for
paper-docxWord documents (imports as docx)
paper-pptxPowerPoint presentations (imports as pptx)
paper-xlsxExcel workbooks (imports as openpyxl)
reportlabPDF authoring
pypdf, pdfplumber, PyMuPDF, pypdfium2PDF reading, extraction, and rendering
pdf2image, PillowRendering pages to images and processing images
pandasTabular data
requests, beautifulsoup4, lxmlHTTP requests and HTML and XML parsing

The Paper packages are forks that keep the upstream import names, so existing code works unchanged. When an edit cannot be made safely, they raise a typed error and leave the file unchanged. Other packages can pull in the upstream distributions, so install the Paper packages last:

pip install pandas==2.2.3 requests==2.32.3 beautifulsoup4==4.12.3 lxml==5.3.0 \
  pypdf pypdfium2==5.10.1 pdfplumber==0.11.10 pdf2image==1.17.0 \
  "Pillow>=12.1.1,<13" PyMuPDF==1.28.0 reportlab==4.5.1
pip uninstall -y python-docx python-pptx openpyxl
pip install --force-reinstall paper-docx==0.2.0 paper-pptx==0.2.0 paper-xlsx==0.2.1

System

sudo apt-get update
sudo apt-get install -y --no-install-recommends curl git jq zip unzip ripgrep \
  poppler-utils libreoffice-calc tesseract-ocr
PackageUsed for
ripgrepFile search
curl, git, jq, zip, unzipCommon command-line tools
poppler-utilsPDF rendering and text extraction
libreoffice-calcFormula recalculation
tesseract-ocrOCR for scanned documents. Add the language packs you need.

On this page