NOFX is an open-source trading system you run on your own machine. Use Frontier to work through a trade with AI, compare entries on a chart and approve the order yourself. Use Autopilot to run a strategy continuously. Both use your configured models and exchange accounts.
Built with Vergex. AI and data access through Claw402.
Run locally
One-line install β Linux / macOS
Install and start Docker with Compose, then run:
curl -fsSL https://raw.githubusercontent.com/NoFxAiOS/nofx/main/install.sh | bash
Open http://127.0.0.1:3000 in your desktop browser.
The installer generates missing environment keys and starts NOFX using published Docker images. No Go or Node.js setup is needed. Continue with your first session, or see source builds and other options.
Frontier
A chart, a conversation and a trade you can inspect before placing it.
- Choose a market. Browse top-volume instruments, search native exchange symbols or use the Binance AI500 list. Stock-linked markets appear where supported by the venue.
- Compare ways to enter. Request market, limit, weighted ladder and TWAP plans. See entry prices, stop loss, targets, leverage, position value and estimated margin together.
- Review and trade. Select a plan to focus the chart. Review the current account and order details, then explicitly approve execution.
- Manage the position. Check live positions and exchange orders below the chart, with controls for manual entries and closing positions.
Frontier supports Binance USDT perpetuals, Hyperliquid, OKX and Bitget. You can browse public markets before connecting an execution account; trading requires a matching account. Generating a plan does not submit an order.
| Entry | How it works |
|---|---|
| Market | Enter at the available market price after approval; the displayed entry is an estimate. |
| Limit | Submit an entry at a chosen price. |
| Ladder | Split the position across weighted price levels. |
| TWAP | Release a finite sequence of orders over time, within the approved price limits. |
Limit orders and scheduled slices may remain unfilled. Execution details and recovery.
Autopilot
For strategies you want to run continuously, configure a trader with a model, exchange account and strategy. Autopilot reads the market, makes decisions and routes orders through the NOFX exchange runtime. The Dashboard shows positions, performance and decision history.
Frontier requires approval for each trade. Autopilot can place trades while it is running. Starting or stopping Autopilot is a separate action.
| Workspace | What you do there |
|---|---|
| Config | Connect models, fund the AI wallet and manage trading accounts. |
| Frontier | Explore markets, compare entry plans and place reviewed orders. |
| Dashboard | Follow your running traders, positions and decision history. |
| Strategy | Configure market selection, indicators, sizing and trading instructions. |
| Leaderboard | Compare published trader performance. |
Your first session
- Create your local account. Sign in to the instance you just started.
- Set up AI in Config. Choose a model. With Claw402, create or import an AI fee wallet, save its private key and fund its address with USDC on Base. This balance pays for model and paid-data requests.
- Add a trading account. Connect the exchange you want to use. Check its account equity and available balance. Trading funds stay separate from your AI fee wallet.
- Open Frontier. Select the exchange, account and market. Generate plans, compare them on the chart and review an order when you are ready.
For continuous trading, configure and start Autopilot separately.
Updating an installer-based installation
After stopping active Autopilot traders and reviewing any running Frontier execution, run these commands from your installation directory (by default ~/nofx):
docker compose pull
docker compose up -d
Keep .env and the data/ directory when upgrading; they contain configuration, encryption material and saved application state.
After restarting, check positions and orders at the exchange and reconcile any execution marked as needing attention before placing another trade. Stopping a process does not close its positions.
Source builds and other options
<details> <summary>Developers: build and update from source</summary>Use this option when developing NOFX or testing source changes before published images are updated. Install Git and Docker with Compose, and start Docker:
git clone --recurse-submodules https://github.com/NoFxAiOS/nofx.git
cd nofx
./start.sh start --build
The startup script creates .env when needed and generates missing encryption keys. If you cloned without submodules, run git submodule update --init web/vendor/charting before building. TradingView chart assets are subject to their applicable license; see chart integration notes.
To update a source installation, stop active Autopilot traders and review running Frontier execution, then:
git pull --ff-only
git submodule update --init web/vendor/charting
./start.sh start --build
</details>
<details>
<summary>Windows, Railway and remote deployments</summary>
Windows
Use Docker Desktop and a Bash environment such as WSL2, then run the one-line installer above.
Railway
Remote deployments
The installer uses the production Compose configuration, which publishes its ports on all host interfaces by default. The source Compose configuration binds the frontend and API to 127.0.0.1 by default. Configure host bindings and an authenticated HTTPS proxy before exposing a remote instance.
Use the Go version specified in go.mod, Node.js 24 as used by the frontend Docker build, and TA-Lib. Initialize the charting submodule before starting the frontend. Configure the environment using .env.example.
# Backend
go build -o nofx .
./nofx
# Frontend, in a second terminal
cd web
npm ci
npm run dev
</details>
Models and data
Frontier and Autopilot reuse models configured in NOFX. Claw402 provides access to multiple models with usage settled in USDC on Base; choose the model in Config and switch it in the workspace.
Exchange prices and candles come from the selected venue. AI500 and supported holder analytics use paid Claw402 routes. Data availability depends on the market and provider: a Hyperliquid holder dataset is not a substitute for Binance, OKX or Bitget data. The activity stream shows data reads and planning progress.
AI fees, paid-data fees and exchange trading funds are separate. Model requests can incur charges even when no trade is placed.
Exchanges
Frontier currently exposes Binance, Hyperliquid, OKX and Bitget. The broader NOFX runtime also includes Bybit, Gate, KuCoin, Aster and Lighter. Available products, order types and account permissions depend on the exchange.
The links below are partner registration links that support development. Fee offers are set by each exchange.
| Exchange | Status | Partner link |
|---|---|---|
| <img src="web/public/exchange-icons/binance.jpg" width="20" height="20" style="vertical-align: middle;"/> Binance | β | Register |
| <img src="web/public/exchange-icons/bybit.png" width="20" height="20" style="vertical-align: middle;"/> Bybit | β | Register |
| <img src="web/public/exchange-icons/okx.svg" width="20" height="20" style="vertical-align: middle;"/> OKX | β | Register |
| <img src="web/public/exchange-icons/hyperliquid.png" width="20" height="20" style="vertical-align: middle;"/> Hyperliquid | β | Register |
| <img src="web/public/exchange-icons/bitget.svg" width="20" height="20" style="vertical-align: middle;"/> Bitget | β | Register |
| <img src="web/public/exchange-icons/kucoin.svg" width="20" height="20" style="vertical-align: middle;"/> KuCoin | β | Register |
| <img src="web/public/exchange-icons/gate.svg" width="20" height="20" style="vertical-align: middle;"/> Gate | β | Register |
| <img src="web/public/exchange-icons/aster.svg" width="20" height="20" style="vertical-align: middle;"/> Aster | β | Register |
| <img src="web/public/exchange-icons/lighter.png" width="20" height="20" style="vertical-align: middle;"/> Lighter | β | Register |
How execution works
Plans and strategy decisions use the existing NOFX exchange adapters. The model does not receive wallet private keys or exchange credentials in its prompt.
- Reviewable orders. Frontier shows account, sizing, entry and exit details before approval. Autopilot follows its configured strategy and runtime limits.
- Account-aware sizing. Frontier uses the selected leverage and current available margin, with execution costs reserved. Quantity, tick size and venue limits still apply.
- Exchange-side exits. The runtime places supported stop-loss and take-profit orders as fills are observed. Entry and protection are not atomic; inspect the exchange if protection fails.
- Order reconciliation. Uncertain submission results are checked against the exchange rather than blindly resubmitted. Unresolved executions can pause further entries.
- Local configuration. Exchange credentials are stored encrypted by the NOFX server. Your installation also holds signing material, so protect its files and backups.
Architecture
Desktop browser
Frontier Β· Config Β· Dashboard Β· Strategy
β
NOFX API
β
ββββββββββββββ΄βββββββββββββ
Frontier planning Autopilot
Review and approval Strategy loop
ββββββββββββββ¬βββββββββββββ
Shared execution
Exchange adapters
β
Your trading accounts
Models and paid data: NOFX provider clients Β· Claw402
Storage: local configuration, plans and execution records
<details>
<summary>Earlier interface walkthrough</summary>
This video shows an earlier version of the interface. Navigation and visual design have since changed.
https://github.com/user-attachments/assets/3310f495-14c5-4586-a1cc-3d32e44aa505
</details>Brand assets
- Logo mark β SVG
- GitHub avatar β PNG, 512 Γ 512
- GitHub avatar β SVG source
- README banner β SVG
Documentation
| Guide | Contents |
|---|---|
| Frontier | Planning, live execution, data and recovery |
| Getting started | Deployment and exchange API guides |
| Architecture | System design and module index |
| Strategy module | Coin selection, AI prompts and execution |
| FAQ | Common questions |
| Troubleshooting | Diagnosing common issues |
Community
Telegram Β· Twitter/X Β· Issues Β· vergex.trade Β· Live dashboard
Contributing
Code, documentation, translations, and bug reports are all welcome β see the Contributing Guide, Code of Conduct, and Security Policy.
NOFX tracks meaningful contributions and intends to reward contributors as the ecosystem grows. Priority issues carry higher weight.
| Contribution | Weight |
|---|---|
| Pinned Issue PRs | β β β β β β |
| Code (Merged PRs) | β β β β β |
| Bug Fixes | β β β β |
| Feature Ideas | β β β |
| Bug Reports | β β |
| Documentation | β β |
Sponsors
<a href="https://github.com/pjl914335852-ux"><img src="https://github.com/pjl914335852-ux.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/cat9999aaa"><img src="https://github.com/cat9999aaa.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/1733055465"><img src="https://github.com/1733055465.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/kolal2020"><img src="https://github.com/kolal2020.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/CyberFFarm"><img src="https://github.com/CyberFFarm.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/vip3001003"><img src="https://github.com/vip3001003.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/mrtluh"><img src="https://github.com/mrtluh.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/cpcp1117-source"><img src="https://github.com/cpcp1117-source.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/match-007"><img src="https://github.com/match-007.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/leiwuhen1715"><img src="https://github.com/leiwuhen1715.png" width="50" height="50" style="border-radius:50%"/></a> <a href="https://github.com/SHAOXIA1991"><img src="https://github.com/SHAOXIA1991.png" width="50" height="50" style="border-radius:50%"/></a>
<br/>If NOFX is useful to you, a star helps other traders find it.
License
<sub>Automated trading involves substantial risk. AI-driven strategies are experimental and can lose money. Size positions appropriately, understand each venue, and never trade funds you cannot afford to lose. Full disclaimer.</sub>