Skip to content

Commit f8bb443

Browse files
Improve README first-run guidance
1 parent afedf4b commit f8bb443

1 file changed

Lines changed: 95 additions & 18 deletions

File tree

README.md

Lines changed: 95 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3748
After the first public PyPI release:
3849

3950
```bash
40-
pip install broadside-ai
51+
py -3 -m pip install broadside-ai
4152
```
4253

4354
Recommended for CLI users:
@@ -49,9 +60,9 @@ pipx install broadside-ai
4960
Optional 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]"
8798
py -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
95169
easy to compose with other tools:
96170

97171
```bash
98-
broadside-ai run --prompt "Write a pitch for a dotfile manager" --n 3
99172
python -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

102177
Files 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
109184
ollama signin
110185
ollama 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

114189
Execution defaults are tuned for user success:
@@ -122,23 +197,25 @@ Override with `--parallel` or `--sequential` when needed.
122197

123198
```bash
124199
ollama 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

144221
For 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`.
150227
Use `--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

156233
The 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

184261
Saved 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
193271
broadside-ai validate-task tasks/ticket_classification.yaml
194-
python -m broadside_ai validate-task tasks/ticket_classification.yaml
195272
```
196273

197274
Validation 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:
212289
Example:
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

218295
You can also stop early when enough branches have arrived or agreed:

0 commit comments

Comments
 (0)