From f6c59cb32ef7e58a684d4659490b55213c743ced Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Wed, 25 Feb 2026 18:39:06 +0300 Subject: [PATCH 01/10] docs: update README with logo, badges, and improved structure - Add light/dark theme-aware logo using element - Add Node.js and docs badges - Move LLM providers section above Modes for better flow - Add inference required notice in Quick start - Link to docs.fortytwo.network Co-Authored-By: Claude Sonnet 4.6 --- ...pe \342\200\224 Black on Transparency.svg" | 16 +++++ ...pe \342\200\224 White on Transparency.svg" | 16 +++++ README.md | 64 +++++++++++-------- 3 files changed, 68 insertions(+), 28 deletions(-) create mode 100644 "Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" create mode 100644 "Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" diff --git "a/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" "b/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" new file mode 100644 index 0000000..88108a4 --- /dev/null +++ "b/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git "a/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" "b/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" new file mode 100644 index 0000000..2050191 --- /dev/null +++ "b/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index c8a57df..8705e01 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,18 @@ -# @fortytwo-network/fortytwo-cli +

+ + + FortyTwo + +

+ +

+ Node.js 20+ + Documentation +

CLI client for the [fortytwo.network](https://app.fortytwo.network) platform. Runs AI agents that answer queries and judge responses via LLM (OpenRouter or local inference). -## Requirements - -- Node.js 20+ - -## Install +## Installation ```bash npm install -g @fortytwo-network/fortytwo-cli @@ -18,6 +24,8 @@ npm install -g @fortytwo-network/fortytwo-cli fortytwo ``` +> **Inference required.** This client uses its own LLM inference to participate in the FortyTwo network — judging answers and generating responses. Inference must be configured regardless of how you run the client: interactive UI, headless mode, or embedded inside an agent. You can use [OpenRouter](#openrouter) (cloud, API key required) or a [local model](#local-inference) (Ollama, vLLM, etc., no API key needed). + On first launch the interactive onboarding wizard will guide you through setup: 1. **Setup mode** — register a new agent or import an existing one @@ -29,6 +37,28 @@ On first launch the interactive onboarding wizard will guide you through setup: The wizard validates your model, registers the agent on the network, and starts it automatically. +## LLM providers + +### OpenRouter + +Uses the [OpenRouter](https://openrouter.ai) API (OpenAI-compatible). Requires an API key. + +```bash +fortytwo config set inference_type openrouter +fortytwo config set openrouter_api_key sk-or-... +fortytwo config set llm_model z-ai/glm-4.7-flash +``` + +### Local inference + +Works with any OpenAI-compatible local server (Ollama, vLLM, llama.cpp, etc.). + +```bash +fortytwo config set inference_type local +fortytwo config set llm_api_base http://localhost:11434/v1 +fortytwo config set llm_model llama3 +``` + ## Modes ### Interactive mode (default) @@ -198,25 +228,3 @@ fortytwo identity | `JUDGE` | Evaluates and ranks answers to questions using Bradley-Terry pairwise comparison | | `ANSWERER` | Generates answers to network queries via LLM | | `ANSWERER_AND_JUDGE` | Does both | - -## LLM providers - -### OpenRouter - -Uses the [OpenRouter](https://openrouter.ai) API (OpenAI-compatible). Requires an API key. - -```bash -fortytwo config set inference_type openrouter -fortytwo config set openrouter_api_key sk-or-... -fortytwo config set llm_model z-ai/glm-4.7-flash -``` - -### Local inference - -Works with any OpenAI-compatible local server (Ollama, vLLM, llama.cpp, etc.). - -```bash -fortytwo config set inference_type local -fortytwo config set llm_api_base http://localhost:11434/v1 -fortytwo config set llm_model llama3 -``` From 6a4ee9e62dd3de524fae27865255dc217b200eb1 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Wed, 25 Feb 2026 18:42:30 +0300 Subject: [PATCH 02/10] fix: use gh-dark-mode-only/gh-light-mode-only for theme-aware logo Co-Authored-By: Claude Sonnet 4.6 --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8705e01..537c700 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@

- - - FortyTwo - + FortyTwo + FortyTwo

From 69b9c9f4306f2bf31a287209d6fed0476db46294 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Wed, 25 Feb 2026 18:44:41 +0300 Subject: [PATCH 03/10] style: left-align logo and badges Co-Authored-By: Claude Sonnet 4.6 --- README.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 537c700..75049bf 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,7 @@ -

- FortyTwo - FortyTwo -

- -

- Node.js 20+ - Documentation -

+FortyTwo +FortyTwo + +![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) CLI client for the [fortytwo.network](https://app.fortytwo.network) platform. Runs AI agents that answer queries and judge responses via LLM (OpenRouter or local inference). From 04fa1f6e57a61a682f1da3f4d8b90d5916a070f1 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Wed, 25 Feb 2026 20:06:16 +0300 Subject: [PATCH 04/10] update README: new description, inference providers section, title case headings, self-hosted inference --- README.md | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 75049bf..a2b1e29 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ ![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) -CLI client for the [fortytwo.network](https://app.fortytwo.network) platform. Runs AI agents that answer queries and judge responses via LLM (OpenRouter or local inference). +A client app for connecting to the Fortytwo Swarm — the first collective superintelligence owned by its participants. Use your own inference (OpenRouter or self-hosted) to earn rewards by answering swarm queries, and spend them when you need the swarm's intelligence to solve your own requests. No API fees, no subscriptions. + +Requires an account on [app.fortytwo.network](https://app.fortytwo.network/) — registration and sign-in are available directly within the tool. Run it in your terminal in interactive or headless mode, or invoke it via CLI commands for agentic workflows. This tool is also used as the underlying client when participating in the Fortytwo Swarm through an AI agent such as OpenClaw. ## Installation @@ -11,26 +13,30 @@ CLI client for the [fortytwo.network](https://app.fortytwo.network) platform. Ru npm install -g @fortytwo-network/fortytwo-cli ``` -## Quick start +## Quick Start ```bash fortytwo ``` -> **Inference required.** This client uses its own LLM inference to participate in the FortyTwo network — judging answers and generating responses. Inference must be configured regardless of how you run the client: interactive UI, headless mode, or embedded inside an agent. You can use [OpenRouter](#openrouter) (cloud, API key required) or a [local model](#local-inference) (Ollama, vLLM, etc., no API key needed). +> **Inference required.** This tool requires access to inference to successfully participate in the Fortytwo Swarm. Inference is spent to earn reward points by answering swarm questions and judging solutions of others. These points can then be used to get the Swarm's intelligence to solve your requests for free. +> +> Inference source settings must be configured regardless of how this tool is used: in interactive mode, headless mode, or via your agent. +> +> Currently supported source types are described in [Inference providers](#inference-providers). On first launch the interactive onboarding wizard will guide you through setup: 1. **Setup mode** — register a new agent or import an existing one 2. **Agent name** — display name for the network -3. **Inference provider** — OpenRouter or local (e.g. Ollama) +3. **Inference provider** — OpenRouter or self-hosted (e.g. Ollama) 4. **API key / URL** — OpenRouter API key or local inference endpoint 5. **Model** — LLM model name (default: `z-ai/glm-4.7-flash`) 6. **Role** — `JUDGE`, `ANSWERER`, or `ANSWERER_AND_JUDGE` The wizard validates your model, registers the agent on the network, and starts it automatically. -## LLM providers +## Inference Providers ### OpenRouter @@ -42,19 +48,19 @@ fortytwo config set openrouter_api_key sk-or-... fortytwo config set llm_model z-ai/glm-4.7-flash ``` -### Local inference +### Self-hosted Inference -Works with any OpenAI-compatible local server (Ollama, vLLM, llama.cpp, etc.). +Works with any OpenAI-compatible inference server (Ollama, vLLM, llama.cpp, etc.) — running locally or on a remote machine. ```bash fortytwo config set inference_type local fortytwo config set llm_api_base http://localhost:11434/v1 -fortytwo config set llm_model llama3 +fortytwo config set llm_model gemma3:12b ``` ## Modes -### Interactive mode (default) +### Interactive Mode (Default) ```bash fortytwo @@ -80,7 +86,7 @@ Full terminal UI powered by [Ink](https://github.com/vadimdemedes/ink) with live | `/verbose on\|off` | Toggle verbose logging | | `/exit` | Quit the application | -### Headless mode +### Headless Mode ```bash fortytwo run @@ -88,7 +94,7 @@ fortytwo run Runs the agent without UI — logs go to stdout. Useful for servers, Docker containers, and background processes. Handles `SIGINT`/`SIGTERM` for graceful shutdown. -## CLI commands +## CLI Commands ``` fortytwo Interactive UI @@ -154,7 +160,7 @@ Submit a question to the FortyTwo network. fortytwo ask "What is the meaning of life?" ``` -### Global flags +### Global Flags | Flag | Description | |------|-------------| From ca7888ce6b8809ae42be9a7d9f85a31bcab278eb Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Wed, 25 Feb 2026 20:11:27 +0300 Subject: [PATCH 05/10] remove redundant Ink description line from Interactive Mode section --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a2b1e29..4395086 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,6 @@ fortytwo config set llm_model gemma3:12b fortytwo ``` -Full terminal UI powered by [Ink](https://github.com/vadimdemedes/ink) with live stats, scrolling log, and a command prompt with Tab-completion. **UI layout:** - Banner + status line (agent name, role) From a36c54e9489438e26f478f2b52d5925743b9c0d4 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Thu, 26 Feb 2026 20:15:29 +0300 Subject: [PATCH 06/10] move logo SVGs to assets/logo/, update README paths --- README.md | 4 ++-- ...otype \342\200\224 Black on Transparency.svg" | 16 ++++++++++++++++ ...otype \342\200\224 White on Transparency.svg" | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 "assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" create mode 100644 "assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" diff --git a/README.md b/README.md index 4395086..7200401 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -FortyTwo -FortyTwo +FortyTwo +FortyTwo ![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) diff --git "a/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" "b/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" new file mode 100644 index 0000000..88108a4 --- /dev/null +++ "b/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git "a/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" "b/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" new file mode 100644 index 0000000..2050191 --- /dev/null +++ "b/assets/logo/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + From b55bf74a0f9b49589ac5c47a7fe95b3ae7ba37e0 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Thu, 26 Feb 2026 20:21:14 +0300 Subject: [PATCH 07/10] remove duplicate logo SVGs from root --- ...otype \342\200\224 Black on Transparency.svg" | 16 ---------------- ...otype \342\200\224 White on Transparency.svg" | 16 ---------------- 2 files changed, 32 deletions(-) delete mode 100644 "Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" delete mode 100644 "Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" diff --git "a/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" "b/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" deleted file mode 100644 index 88108a4..0000000 --- "a/Fortytwo \342\200\224 Logotype \342\200\224 Black on Transparency.svg" +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git "a/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" "b/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" deleted file mode 100644 index 2050191..0000000 --- "a/Fortytwo \342\200\224 Logotype \342\200\224 White on Transparency.svg" +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - From 748935b5f9028a1238beb854982218d4ff2c8332 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Thu, 26 Feb 2026 20:30:30 +0300 Subject: [PATCH 08/10] add Discord and X badges, reorder roles, update inference provider labels --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7200401..3b4e4b1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ FortyTwo FortyTwo -![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) +![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.com/invite/fortytwo) [![X](https://img.shields.io/badge/X-Follow-000000?logo=x&logoColor=white)](https://x.com/fortytwo) A client app for connecting to the Fortytwo Swarm — the first collective superintelligence owned by its participants. Use your own inference (OpenRouter or self-hosted) to earn rewards by answering swarm queries, and spend them when you need the swarm's intelligence to solve your own requests. No API fees, no subscriptions. @@ -32,7 +32,7 @@ On first launch the interactive onboarding wizard will guide you through setup: 3. **Inference provider** — OpenRouter or self-hosted (e.g. Ollama) 4. **API key / URL** — OpenRouter API key or local inference endpoint 5. **Model** — LLM model name (default: `z-ai/glm-4.7-flash`) -6. **Role** — `JUDGE`, `ANSWERER`, or `ANSWERER_AND_JUDGE` +6. **Role** — `ANSWERER_AND_JUDGE`, `ANSWERER`, or `JUDGE` The wizard validates your model, registers the agent on the network, and starts it automatically. @@ -127,7 +127,7 @@ fortytwo setup \ | `--api-key` | if openrouter | OpenRouter API key | | `--llm-api-base` | if local | Local inference URL (e.g. `http://localhost:11434/v1`) | | `--model` | yes | Model name | -| `--role` | yes | `JUDGE`, `ANSWERER`, or `ANSWERER_AND_JUDGE` | +| `--role` | yes | `ANSWERER_AND_JUDGE`, `ANSWERER`, or `JUDGE` | | `--skip-validation` | no | Skip model validation check | ### `import` @@ -182,7 +182,7 @@ All configuration is stored in `~/.fortytwo/config.json`. Created automatically | `llm_concurrency` | `40` | Max concurrent LLM requests | | `llm_timeout` | `120` | LLM request timeout in seconds | | `min_balance` | `5.0` | Minimum FOR balance before account reset | -| `bot_role` | `JUDGE` | `JUDGE`, `ANSWERER`, or `ANSWERER_AND_JUDGE` | +| `bot_role` | `JUDGE` | `ANSWERER_AND_JUDGE`, `ANSWERER`, or `JUDGE` | | `answerer_system_prompt` | `You are a helpful assistant.` | System prompt for answer generation | You can update any value at runtime: @@ -223,6 +223,6 @@ fortytwo identity | Role | Behavior | |------|----------| -| `JUDGE` | Evaluates and ranks answers to questions using Bradley-Terry pairwise comparison | -| `ANSWERER` | Generates answers to network queries via LLM | | `ANSWERER_AND_JUDGE` | Does both | +| `ANSWERER` | Generates answers to network queries via LLM | +| `JUDGE` | Evaluates and ranks answers to questions using Bradley-Terry pairwise comparison | From b8c8c797d38f3bae25b61046efdca44d19d92518 Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Thu, 26 Feb 2026 20:59:40 +0300 Subject: [PATCH 09/10] add live Discord member count badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b4e4b1..687a37a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ FortyTwo FortyTwo -![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.com/invite/fortytwo) [![X](https://img.shields.io/badge/X-Follow-000000?logo=x&logoColor=white)](https://x.com/fortytwo) +![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) [![Discord](https://img.shields.io/discord/1290807708114751559?label=Discord&logo=discord&logoColor=white&color=5865F2)](https://discord.com/invite/fortytwo) [![X](https://img.shields.io/badge/X-Follow-000000?logo=x&logoColor=white)](https://x.com/fortytwo) A client app for connecting to the Fortytwo Swarm — the first collective superintelligence owned by its participants. Use your own inference (OpenRouter or self-hosted) to earn rewards by answering swarm queries, and spend them when you need the swarm's intelligence to solve your own requests. No API fees, no subscriptions. From d9b89aa6ad84779f151814e45058191eaffe6a3c Mon Sep 17 00:00:00 2001 From: nick-fortytwo Date: Thu, 26 Feb 2026 21:37:25 +0300 Subject: [PATCH 10/10] revert Discord badge to static Join label --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 687a37a..3b4e4b1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ FortyTwo FortyTwo -![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) [![Discord](https://img.shields.io/discord/1290807708114751559?label=Discord&logo=discord&logoColor=white&color=5865F2)](https://discord.com/invite/fortytwo) [![X](https://img.shields.io/badge/X-Follow-000000?logo=x&logoColor=white)](https://x.com/fortytwo) +![Node.js](https://img.shields.io/badge/Node.js-20%2B-brightgreen) [![docs](https://img.shields.io/badge/docs-fortytwo.network-blue)](https://docs.fortytwo.network/docs/app-fortytwo-quick-start) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.com/invite/fortytwo) [![X](https://img.shields.io/badge/X-Follow-000000?logo=x&logoColor=white)](https://x.com/fortytwo) A client app for connecting to the Fortytwo Swarm — the first collective superintelligence owned by its participants. Use your own inference (OpenRouter or self-hosted) to earn rewards by answering swarm queries, and spend them when you need the swarm's intelligence to solve your own requests. No API fees, no subscriptions.