Skip to main content
fxtr is not published to a package index yet. A project depends on a local checkout of the fxtr repository by path. The commands below run from that checkout unless they say otherwise.

Prerequisites

  • uv 0.12.2 or newer, git (or jj), and pnpm.
  • A container runtime with Compose, such as Docker or Podman, for a local Postgres server. Any Postgres server works if you already have one.
  • The fxtr checkout, set up from its root:

Create and launch a project

1

Start Postgres

fxtr keeps every job, result, and cache entry in Postgres. The checkout’s postgres_env/ runs a local server in a container:
It listens on port 55433, with user, password, and database all named fxtr.
2

Write the project

From the checkout:
This writes a uv project with an example experiment, a launcher, and a renderer package for the viewer. It also runs git init and uv sync, and prints the next steps.
3

Connect it to the database

From the new project:
This writes fxtr.local.toml, which records where this machine reaches the database and is never committed, and creates the project’s tables.
4

Commit and launch

Every launch records the commit it runs, so commit first:
The example experiment greets three guests:
5

Open the viewer

This serves the experiment viewer at http://127.0.0.1:8000/ and opens it in your browser. Open the link the launcher printed to see the job’s graph: the guest list, the greet step mapped over it, and each greeting it produced.

What’s in the project

[tool.fxtr] modules in pyproject.toml lists the modules that define your steps and workflows. When you add an experiment module, add it there too.

Next steps

Your first experiment

Write an experiment of your own, step by step.

Core concepts

How projects, steps, workflows, jobs, and arrays fit together.