Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ed73f0b
Fix final render issue in suggestion placeholder to prevent freeze on…
Natuworkguy Aug 21, 2026
e4766d8
Add retry mechanism for final response in chat function
Natuworkguy Aug 21, 2026
56a2997
Enhance chat response handling with system message prompt and ensure …
Natuworkguy Aug 21, 2026
1e1e90f
Fix small errors
Natuworkguy Aug 21, 2026
bc961f9
Implement live output streaming for shell commands with timeout handling
Natuworkguy Aug 21, 2026
658ebba
Refactor _run_shell_streaming function signature for improved readabi…
Natuworkguy Aug 21, 2026
b2ea1e1
Make Flash Onyx 2
Natuworkguy Aug 21, 2026
e9a6c65
Add message rendering for submitted lines and enable erase on completion
Natuworkguy Aug 21, 2026
0c8bc6a
Add Flash Onyx 2 model definition with operational guidelines and par…
Natuworkguy Aug 21, 2026
f7f1940
Fix onyx 2 modelfile
Natuworkguy Aug 21, 2026
8d6092e
Add tool usage guidelines and markdown rendering support to system pr…
Natuworkguy Aug 22, 2026
a26b7ad
Implement dynamic system prompt handling and build function for model…
Natuworkguy Aug 22, 2026
fc39d03
Refactor _render_sent_message function for improved readability
Natuworkguy Aug 22, 2026
1a22e40
Implement image handling and view_image tool for enhanced image proce…
Natuworkguy Aug 22, 2026
d27a79a
Improve Onyx 2
Natuworkguy Aug 22, 2026
bbdd70c
Enhance image handling and add vision capability checks in tools and …
Natuworkguy Aug 22, 2026
a57e013
Fix message sender type for tool image notes in main function
Natuworkguy Aug 22, 2026
b1e899c
Change install.sh file permissions to executable
Natuworkguy Aug 22, 2026
0c4b389
Add -y flag to brew install pipx for non-interactive installation
Natuworkguy Aug 22, 2026
55d9073
Fix version string format in CLI help message
Natuworkguy Aug 22, 2026
71aa347
Update installation message to include flash version
Natuworkguy Aug 22, 2026
6e3524f
Remove extra line after prompt
Natuworkguy Aug 22, 2026
a1e56ed
Clarify style rules to prohibit em-dashes in all forms and emphasize …
Natuworkguy Aug 22, 2026
c48e4bf
Increase num_predict parameter from 2048 to 8192 for enhanced predict…
Natuworkguy Aug 22, 2026
83eaf52
Add read and write tools with line numbering and diff preview functio…
Natuworkguy Aug 22, 2026
041d44e
Refactor result message formatting in web_search function to use plur…
Natuworkguy Aug 22, 2026
657c21d
Remove pylint disable comment from run.py
Natuworkguy Aug 22, 2026
df583f2
Refactor console title printing to conditionally display based on std…
Natuworkguy Aug 22, 2026
d53184e
Update README and Modelfiles for Flash Onyx 2 release; add build scri…
Natuworkguy Aug 23, 2026
2404f93
Enhance model guidelines for 3D CSS and file handling in flash-onyx-2…
Natuworkguy Aug 23, 2026
1e764d1
Add screenshot tool for headless browser rendering and update documen…
Natuworkguy Aug 23, 2026
1aecee4
Add comprehensive Python coding standards and guidelines to the model…
Natuworkguy Aug 23, 2026
994efb5
Enhance explanation guidelines for clarity and reader understanding i…
Natuworkguy Aug 24, 2026
a1de0b0
Add negotiation guidelines to enhance user outcomes and relationship …
Natuworkguy Aug 24, 2026
a19fd4c
Enhance writing guidelines to improve human-like prose and clarity in…
Natuworkguy Aug 24, 2026
96d6b27
Remove unnecessary reference to Notification after assignment in noti…
Natuworkguy Aug 24, 2026
1012c52
Add reasoning support to response handling and render thinking output
Natuworkguy Aug 24, 2026
3cda62a
Refactor suggestions in JSON to simplify command examples and improve…
Natuworkguy Aug 24, 2026
829aff5
Normalize executable suffix in launch_command for consistency across …
Natuworkguy Aug 24, 2026
6d0c76c
Fix potential NoneType error in is_pipx_install function
Natuworkguy Aug 24, 2026
bb5f8ab
Bump version to 0.3.0
Natuworkguy Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 49 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ FLASH (**F**ast **L**ocal **A**gent **SH**ell) CLI is an AI-powered command-line
- AI can use a `shell` tool to execute commands and see their output.
- Manually execute shell commands using the `!` prefix.
- **`flash://` Links**: Open Flash from a browser or another app with a prompt ready to go (`flash://?prompt=What+is+Python`).
- **Image Recognition**: Send a local image to a vision-capable model with `/image <path> [prompt]`.
- **Image Recognition**: Send a local image to a vision-capable model with `/image <path> [prompt]`, or let the AI open one itself with its `view_image` tool.
- **Page Screenshots**: The AI renders a page it built in a headless browser with its `screenshot` tool and looks at the result, so it can see a broken layout instead of guessing from the HTML.
- **Context Management**: Automatic history trimming to stay within token limits.
- **Markdown Support**: Rich formatting for AI responses in the terminal.

Expand Down Expand Up @@ -71,24 +72,27 @@ Or, if you already have the repo cloned locally:

### Flash Onyx (recommended model)

**Flash Onyx** is a series of custom Ollama models built for Flash. The current
release, [**Flash Onyx 1**](https://ollama.com/Natuworkguy/flash-onyx-1), is `llama3.1` with Flash's persona and tuned
parameters baked in.
**Flash Onyx** is a series of custom Ollama models built for Flash: a base
model with Flash's persona and tuned parameters baked in. Each one lives in a
single Modelfile under `models/` that declares its name and sizes at the top,
and `models/build.py` builds whatever a Modelfile declares.

Pull it straight from the registry:
The current release, **Flash Onyx 2**, is `gemma4` in two sizes. `12b` runs on
consumer hardware; `31b` is the flagship and wants a bigger GPU.

```bash
ollama pull Natuworkguy/flash-onyx-1
python3 models/build.py models/flash-onyx-2.Modelfile # every size
python3 models/build.py models/flash-onyx-2.Modelfile --size 31b # just one
```

Or build it from the repo:
**Flash Onyx 1** is the previous release, built on `llama3.1`:

```bash
ollama create flash-onyx-1 -f models/flash-onyx-1.Modelfile
python3 models/build.py models/flash-onyx-1.Modelfile
```

Then set `MODEL` to whichever you used (`Natuworkguy/flash-onyx-1` or
`flash-onyx-1`) in `~/.flash.env` or your environment.
Then set `MODEL` to whichever you built (`flash-onyx-2:31b`, `flash-onyx-1`,
and so on) in `~/.flash.env` or your environment.

### Run

Expand Down Expand Up @@ -151,6 +155,40 @@ ollama pull llama3.2-vision
/image ~/Pictures/screenshot.png What's going on in this UI?
```

The model can also open an image on its own with the `view_image` tool, so
you can just name the file in a normal message and let it look:

```
Why does the legend in ~/Desktop/plot.png overlap the bars?
```

It accepts the same file types (up to 20 MB) and sees the image for that
turn only, calling `view_image` again later if it needs another look.

### Page screenshots

The `screenshot` tool renders a local `.html` file or a URL in a headless
Chromium and attaches the picture, so a vision-capable model can check
what it built rather than trusting its own source:

```
Build me a pricing page in ~/Desktop/pricing.html, then check how it
looks on a phone.
```

It takes a viewport `width` and `height`, captures the whole scrollable
page with `full_page`, and reports any JavaScript errors the page threw
while rendering, which is usually what explains a section that came out
empty.

Screenshots need Playwright's Chromium, which `install.sh` and
`install.ps1` download for you. Installing Flash another way means
running it yourself:

```bash
playwright install chromium
```

### Updates

Flash checks `main` on GitHub for a newer version on startup and shows it
Expand Down Expand Up @@ -211,4 +249,4 @@ Passing a `flash://` URL on the command line still works everywhere.

### AI Interaction

Simply type your request. If the AI needs to see the contents of a file or run a command to answer your question, it can invoke the shell tool automatically. It can also search the web via Duck Duck Go and show it's reasoning.
Simply type your request. If the AI needs to see the contents of a file or run a command to answer your question, it can invoke the shell tool automatically. It can also look at an image file with the `view_image` tool, search the web via Duck Duck Go, and show it's reasoning.
2 changes: 2 additions & 0 deletions docs/CONFIGURATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ Requirements:
(`ollama pull <model>`).
- For tool calling (shell / web search / OS info) to work, choose a model that
supports tools, such as `llama3.1`.
- For `/image` and the `view_image` tool to work, the model must also be
vision-capable, such as `llama3.2-vision`.

## Options

Expand Down
11 changes: 7 additions & 4 deletions flash/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import sys

import colorama

colorama.just_fix_windows_console()

print(
colorama.ansi.set_title("FLASH CLI"),
end=""
)
if sys.stdout.isatty():
print(
colorama.ansi.set_title("FLASH CLI"),
end=""
)
Loading
Loading