@@ -32,12 +32,23 @@ Committed benchmark snapshots in `benchmarks/results/` currently show:
3232
3333## Install
3434
35+ Broadside-AI gives you two equivalent ways to run it:
36+
37+ - ` broadside-ai ... `
38+ - ` py -3 -m broadside_ai ... `
39+
40+ If you are on Windows and the ` broadside-ai ` command is not recognized, use the
41+ ` py -3 -m broadside_ai ... ` form. It works even when the user Scripts
42+ directory is not on ` PATH ` .
43+
44+ On macOS or Linux, replace ` py -3 ` with ` python3 ` in the commands below.
45+
3546### From PyPI
3647
3748After the first public PyPI release:
3849
3950``` bash
40- pip install broadside-ai
51+ py -3 -m pip install broadside-ai
4152```
4253
4354Recommended for CLI users:
@@ -49,9 +60,9 @@ pipx install broadside-ai
4960Optional extras:
5061
5162``` bash
52- pip install broadside-ai[anthropic]
53- pip install broadside-ai[openai]
54- pip install broadside-ai[all]
63+ py -3 -m pip install " broadside-ai[anthropic]"
64+ py -3 -m pip install " broadside-ai[openai]"
65+ py -3 -m pip install " broadside-ai[all]"
5566```
5667
5768### From a downloaded ZIP or cloned repo
@@ -87,16 +98,80 @@ py -3 -m pip install ".[openai]"
8798py -3 -m pip install ".[all]"
8899```
89100
101+ ### First success on Windows
102+
103+ If you want the most reliable first-run path on Windows, use this sequence:
104+
105+ 1 . Install the package from the repo or from PyPI.
106+ 2 . Verify the module entrypoint works:
107+
108+ ``` cmd
109+ py -3 -m broadside_ai --help
110+ ```
111+
112+ 3 . If ` broadside-ai --help ` also works, you can use either form.
113+ 4 . If ` broadside-ai ` is not recognized, keep using ` py -3 -m broadside_ai ... `
114+ or install with ` pipx ` so the command is added to a CLI-friendly location.
115+
90116## Quick start
91117
118+ ### Guided tour
119+
120+ Broadside-AI needs a real backend before ` run ` can do useful work. The easiest
121+ way to avoid a frustrating first try is:
122+
123+ 1 . Confirm the install worked.
124+ 2 . Set up one backend.
125+ 3 . Run a single prompt.
126+
127+ #### Step 1: Confirm the install worked
128+
129+ Start here:
130+
131+ ``` cmd
132+ py -3 -m broadside_ai --help
133+ ```
134+
135+ If you want to try the console-script form too:
136+
137+ ``` cmd
138+ broadside-ai --help
139+ ```
140+
141+ If that second command says ` 'broadside-ai' is not recognized ` , nothing is
142+ wrong with Broadside-AI itself. It just means the script location is not on
143+ your ` PATH ` yet. Use ` py -3 -m broadside_ai ... ` and keep going.
144+
145+ #### Step 2: Pick one backend
146+
147+ Broadside-AI supports Ollama, Anthropic, and OpenAI-compatible APIs. For a
148+ first run, Ollama local is the least setup-heavy option.
149+
150+ #### Step 3: Run your first prompt with Ollama local
151+
152+ Install Ollama, then pull a local model:
153+
154+ ``` cmd
155+ ollama pull gemma3:1b
156+ ```
157+
158+ Now run Broadside-AI:
159+
160+ ``` cmd
161+ py -3 -m broadside_ai run --prompt "Write a pitch for a dotfile manager" --n 3 --model gemma3:1b
162+ ```
163+
164+ That should print one synthesized result to stdout.
165+
92166### Plain CLI output
93167
94168` run ` prints only the synthesized result to stdout by default, which makes it
95169easy to compose with other tools:
96170
97171``` bash
98- broadside-ai run --prompt " Write a pitch for a dotfile manager" --n 3
99172python -m broadside_ai run --prompt " Summarize this changelog" --n 3 > summary.txt
173+ py -3 -m broadside_ai run --prompt " Write a pitch for a dotfile manager" --n 3 --model gemma3:1b
174+ broadside-ai run --prompt " Write a pitch for a dotfile manager" --n 3 --model gemma3:1b
100175```
101176
102177Files are written only when you ask for them with ` --save ` or ` --output ` .
@@ -108,7 +183,7 @@ Install Ollama, sign in, and pull the default cloud model:
108183``` bash
109184ollama signin
110185ollama pull nemotron-3-super:cloud
111- broadside-ai run --prompt " Write a pitch for a dotfile manager" --n 3
186+ py -3 -m broadside_ai run --prompt " Write a pitch for a dotfile manager" --n 3
112187```
113188
114189Execution defaults are tuned for user success:
@@ -122,23 +197,25 @@ Override with `--parallel` or `--sequential` when needed.
122197
123198``` bash
124199ollama pull gemma3:1b
125- broadside-ai run --prompt " Write a pitch for a dotfile manager" --n 3 --model gemma3:1b
200+ py -3 -m broadside_ai run --prompt " Write a pitch for a dotfile manager" --n 3 --model gemma3:1b
126201```
127202
128203### Anthropic
129204
205+ Set ` ANTHROPIC_API_KEY ` in your shell first, then run:
206+
130207``` bash
131- pip install broadside-ai[anthropic]
132- export ANTHROPIC_API_KEY=your-key-here
133- broadside-ai run --prompt " Review this design" --n 3 --backend anthropic
208+ py -3 -m pip install " broadside-ai[anthropic]"
209+ py -3 -m broadside_ai run --prompt " Review this design" --n 3 --backend anthropic
134210```
135211
136212### OpenAI-compatible APIs
137213
214+ Set ` OPENAI_API_KEY ` in your shell first, then run:
215+
138216``` bash
139- pip install broadside-ai[openai]
140- export OPENAI_API_KEY=your-key-here
141- broadside-ai run --prompt " Compare these options" --n 3 --backend openai
217+ py -3 -m pip install " broadside-ai[openai]"
218+ py -3 -m broadside_ai run --prompt " Compare these options" --n 3 --backend openai
142219```
143220
144221For OpenAI-compatible providers, set ` OPENAI_BASE_URL ` and pass ` --model ` .
@@ -150,7 +227,7 @@ For OpenAI-compatible providers, set `OPENAI_BASE_URL` and pass `--model`.
150227Use ` --json-output ` for scripts and subprocess integrations:
151228
152229``` bash
153- broadside-ai run tasks/ticket_classification.yaml --n 5 --synthesis weighted_merge --json-output
230+ py -3 -m broadside_ai run tasks/ticket_classification.yaml --n 5 --synthesis weighted_merge --json-output
154231```
155232
156233The JSON payload always includes:
@@ -177,8 +254,8 @@ The JSON payload always includes:
177254### Save artifacts when you want them
178255
179256``` bash
180- broadside-ai run tasks/code_review.yaml --n 3 --save
181- broadside-ai run tasks/code_review.yaml --n 3 --output artifacts/review-run
257+ py -3 -m broadside_ai run tasks/code_review.yaml --n 3 --save
258+ py -3 -m broadside_ai run tasks/code_review.yaml --n 3 --output artifacts/review-run
182259```
183260
184261Saved runs go under:
@@ -190,8 +267,8 @@ broadside_ai_output/{model}/{topic}_{timestamp}/
190267### Validate task files
191268
192269``` bash
270+ py -3 -m broadside_ai validate-task tasks/ticket_classification.yaml
193271broadside-ai validate-task tasks/ticket_classification.yaml
194- python -m broadside_ai validate-task tasks/ticket_classification.yaml
195272```
196273
197274Validation exits ` 0 ` when every file is valid and ` 1 ` when any file fails.
@@ -212,7 +289,7 @@ That enables `weighted_merge`, an algorithmic synthesis strategy that:
212289Example:
213290
214291``` bash
215- broadside-ai run tasks/ticket_classification.yaml --n 5 --synthesis weighted_merge --json-output
292+ py -3 -m broadside_ai run tasks/ticket_classification.yaml --n 5 --synthesis weighted_merge --json-output
216293```
217294
218295You can also stop early when enough branches have arrived or agreed:
0 commit comments