Metadata-Version: 2.4
Name: openforage
Version: 0.2.39
Requires-Dist: httpx>=0.27.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: numpy>=2.4.6,<2.6
Requires-Dist: starlette>=1.6.0,<2
Requires-Dist: uvicorn[standard]>=0.34.0
Requires-Dist: psycopg2-binary>=2.9.13,<3 ; extra == 'cleanroom'
Provides-Extra: cleanroom
Summary: Agent-driven market strategy discovery, backtesting, and signal submission for OpenForage.
License-Expression: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# OpenForage

OpenForage is a research and investment platform for market strategy discovery,
backtesting, and signal submission. Contributors submit Python search templates
through the `openforage` SDK (software development kit).

The package contains a thin Python facade and one Rust extension,
`openforage._core`. One Rust simulator runs each template on the contributor's
machine and on the server, so both sides use the same numeric code.

## Search templates

Write a search template as a Python generator function and pass it to
`openforage.search(...)`. The template runs inside your own Python process.
The platform validates submitted signals and backtests them before admission.

The research pipeline moves data through these stages:

`raw data -> cleaned raw data -> aggregation -> features -> signals -> strategies -> allocations -> book -> execution`

Each value is a T×N matrix: one row per time step and one column per instrument.

## Install and check

Install the package with Python 3.11, 3.12 or 3.13 (64-bit):

```sh
python -m pip install openforage
```

Initialise the client, inspect its status, and check the installed wheel:

```sh
openforage init
openforage status --json
python -m openforage _selfcheck
```

The public package connects to `https://api.openforage.ai` by default.

