Skip to main content

harumi

Run your local optimization code on Harumi's infrastructure — straight from your terminal or IDE — via the project's self-hosted Gitea repo, instead of pasting it into the platform's notebook editor.

Optimization/solver code (Gurobi, OR-Tools, etc.) is often too heavy to run on a laptop. harumi binds a local directory to a Harumi project, runs your code (from a git ref) on Harumi's infrastructure, and lets you inspect/download the results — reusing the exact same backend endpoints the web app and AI agent already use. It can also manage the project's repo, datasources, schedules, secrets, and organizations end to end.

Install

pip install harumi

This installs the harumi CLI and the harumi Python package (import harumi).

Installing from source instead (for contributing, or an unreleased fix):

pip install -e .

Quick start

# 1. Log in (Supabase OTP — check your email for the code)
harumi login

# 2. Create a new project, or find an existing one
harumi projects create "My Project"
harumi projects list

# 3. Bind the current directory to a project (skip if `projects create` already bound it)
harumi init --project <PROJECT_ID>

# 4. See available kernel sizes (CPU/RAM, Gurobi vs plain Python)
harumi specs

# 5. Run the bound directory's code on the infra
harumi run --watch --output-dir ./out

# 6. Inspect runs later
harumi runs list
harumi runs get <RUN_ID>

# 7. Check the project's dashboard.toml renders the widgets you expect
harumi dashboard validate --latest

Everything else the CLI can do

  • harumi repo — browse, read, write, delete, move, and download files in the project's Gitea repo; create/delete/promote branches (versions); repo dir for a GitHub-style folder-at-a-time browse.
  • harumi dashboard — look up the dashboard.toml widget reference (widgets) and validate a project's dashboard, including its output.json dot-paths, before pushing (validate).
  • harumi share — turn the project's public, unauthenticated dashboard link on/off, rotate it, and password-protect it.
  • harumi templates — list project templates to pass as projects create --template-id.
  • harumi datasources — CRUD project database connections, test them, and run read-only SQL queries against them.
  • harumi schedules — CRUD cron schedules that trigger git-ref runs.
  • harumi secrets — CRUD project-scoped environment variables.
  • harumi org — CRUD organizations and manage their members.
  • harumi profile — view/update your account profile.

Run harumi --help or any subcommand with --help for the full flag reference, or see the command reference for endpoint-level detail.

Execution model

Every run is git-ref based: code lives in the project's Harumi Git (Gitea) repo. If your working tree is dirty or has unpushed commits when you run harumi run, the CLI transparently pushes a throwaway scratch branch so you can iterate without committing manually — your real branches are never touched. Pass --branch/--commit to run a specific ref instead.

Configuration & environments

The CLI targets one of two environments (each with its own Supabase, so each has its own login):

Env API Gitea Access
production (default) https://api.harumi.io/api https://git.harumi.io public
staging https://api.dev.harumi.io/api https://git.dev.harumi.io internal, VPN-only
harumi env list          # production only (staging hidden unless --all / HARUMI_INTERNAL=1)
harumi env use staging   # internal devs; requires VPN + a staging account
harumi --env staging run # override for a single command

Selection precedence: --env > HARUMI_ENV > harumi env use (saved default) > production. Within an environment you can still override endpoints for local development:

Env var Purpose
HARUMI_API_URL Override harumi-api base URL (e.g. http://localhost:8000/api)
HARUMI_GIT_URL Override the Harumi Git (Gitea) base URL
HARUMI_ORG Organization ID sent as X-Organization, and the workspace new projects are created in (projects create --personal opts out)
HARUMI_INTERNAL Set to 1 to reveal internal environments in harumi env list

Credentials (JWT + refresh token + Gitea token) are stored per-environment under ~/.harumi/environments/<env>/credentials.json (mode 0600) after harumi login. An older flat ~/.harumi/credentials.json is migrated into production automatically on first run.

Library usage

from harumi import Client
from harumi.config import ProjectBinding

binding = ProjectBinding.load()  # reads .harumi/config.json in cwd (or a parent)
client = Client()  # loads stored credentials

response = client.execute_project(binding.project_id, branch="main")

See the command reference for more examples (polling, repo edits, datasources, schedules, secrets, orgs).

Development

pip install -e ".[dev]"
pytest

All tests are offline (SSE parser + mocked HTTP transport) — no live backend required.

Metadata

Release files for harumi 0.4.3

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

Source distribution (sdist)

Source distribution for harumi 0.4.3
File Size Uploaded Provenance Actions
harumi-0.4.3.tar.gz 114.0 kB With provenance Details for harumi-0.4.3.tar.gz

Built distribution (wheel)

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

Total release size: 200.4 kB

Release files / harumi-0.4.3.tar.gz

Download URL harumi-0.4.3.tar.gz
Size 114.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c169c9cf01824838e26108bc4ee804c406ef1800975abd7be5e017760a20f714
BLAKE2b-256 checksum
How to use checksums
a004eea317d3aafa7aca9deda4553ab39a2c38b99bc009ddf9ee4220ea283bcd
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 Aug 26, 2026.

Transparency log

Release files / harumi-0.4.3-py3-none-any.whl

Download URL harumi-0.4.3-py3-none-any.whl
Size 86.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e0c13eda1a6560774f936dc20c997eb79a11a04ae91d4360c7a9ce55fa38756
BLAKE2b-256 checksum
How to use checksums
ac5adc9c34484a490745f7dec17845ff1f8d5ad89fa9a0aa49817c0158ac0bc8
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 Aug 26, 2026.

Transparency log

Security for harumi 0.4.3

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for harumi-0.4.3.tar.gz

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 Aug 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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