Skip to main content

Hailer

Hailer is a Python command-line package for chatting with your data. Ask questions about local CSV, Parquet, JSON or Excel files in plain English, and it explores the data and adds tables, charts and summaries to a live marimo notebook in your browser. You chat in the terminal; the notebook keeps the analysis and its Python code.

Documentation · Quickstart · Command reference

Quick start

You'll need:

  • uv, which provides the uvx command. Install it, then reopen your terminal.
  • An OpenAI API key for the default setup.
  • A web browser.

These steps work in PowerShell on Windows and in a terminal on macOS or Linux. uvx downloads Hailer, its dependencies and a suitable Python version when needed. You do not need to clone this repository or install Docker.

1. Create a workspace and sign in

Run these commands in your terminal:

mkdir my-analysis
cd my-analysis
uvx hailer init
uvx hailer login openai

init creates your settings (hailer.toml), a starter notebook and a data/ folder. At the login prompt, paste your API key; input is hidden and the key is saved in your operating system's credential store. The starter settings use OpenAI with gpt-5.5.

For a company or another model endpoint, follow custom endpoint setup after init, using that provider's login command, then continue below.

2. Add your data

Copy the CSV, Parquet, JSON or Excel files you want to analyse into the data/ folder inside my-analysis. Any filenames work.

For a small example, save this as data/sales.csv in your workspace:

month,region,revenue
2026-01,North,1200
2026-01,South,900
2026-02,North,1500
2026-02,South,1100

3. Start chatting

From the same terminal, run:

uvx hailer

Hailer opens the notebook in your browser and starts the chat in your terminal. Keep the notebook tab open while you work; it provides the live session that runs the analysis.

Ask a question in the terminal, for example:

What data do I have? Summarise the columns and any missing values.

With the sample CSV, try:

Chart total revenue by month, split by region.

Tables and charts appear in the notebook. Type /exit to finish. To continue later, open a terminal in my-analysis and run uvx hailer again; it resumes your conversation and active notebook. Use /new for a fresh conversation, or /help to see the chat commands.

If startup fails, run uvx hailer doctor for checks and suggested fixes, or see Troubleshooting. A missing marimo server before your first session is expected: uvx hailer starts it for you.

Data and code: files are read locally, but your messages, code and notebook tool outputs (which can include data samples) go to the configured model endpoint. By default, notebook code runs with your account's file and network access. See Security and the optional Docker runtime for details.

Documentation

Development

git clone https://github.com/OpenAfterHours/hailer.git
cd hailer
uv sync --locked
uv run hailer login openai
uv run hailer
uv run pytest

Read the development guide for sample data and test details, and the release guide for the release process. Before changing the agent, providers, tools or conversation lifecycle, read docs/LEARNINGS.md, docs/INTERFACES.md and PLAN.md.

Preview the documentation:

uv run --locked --group docs zensical serve

See Maintaining the docs for build and publishing instructions.

Release files for hailer 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hailer 0.2.8
File Size Uploaded
hailer-0.2.8.tar.gz 573.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hailer 0.2.8
File Interpreter ABI Platform
hailer-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 735.2 kB

Release files / hailer-0.2.8.tar.gz

Download URL hailer-0.2.8.tar.gz
Size 573.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c9021311cd9a6c6fd3d24f2a8179ac1c9abf9e7475f7935fc1f7eefa188c87e2
BLAKE2b-256 checksum
How to use checksums
315d9e1d25be5b4ab1437877d2b501dd93bd0cce41b47e8d99599f1aa12333fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release files / hailer-0.2.8-py3-none-any.whl

Download URL hailer-0.2.8-py3-none-any.whl
Size 161.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5031b1911d9cea7d7b7237d8cad04d7594d20d445d234852ac92c559f289eeac
BLAKE2b-256 checksum
How to use checksums
ed772b3d516f3586a538e38c349fbe9e0118b14412068af80cde1ef8de3565fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.8 This release

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page