Flow Control is under active development, but usually very stable.
Fetch and install the latest release to /usr/local/bin
with the installation helper script:
curl -fsSL https://flow-control.dev/install | sh
Install the latest nightly build:
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly
with debug symbols:
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --debug
See all avalable options for the installer script:
curl -fsSL https://flow-control.dev/install | sh -s -- --help
Install the installer for easy updating of flow:
sudo curl -fsSL -o /usr/local/bin/update-flow https://flow-control.dev/install
sudo chmod +x /usr/local/bin/update-flow
update-flow
At the top of the installer are variables to pre-answer the installation questions. Configure them to your liking.
For Windows the installer scripts are a little different.
Fetch and install the latest release to %AppData%/Roaming/flow/bin
:
Invoke-RestMethod "https://flow-control.dev/install.ps1" | Invoke-Expression
Install the latest nightly build:
Invoke-RestMethod "https://flow-control.dev/install-nightly.ps1" | Invoke-Expression
Install the latest nightly build with pdb debug symbol files:
Invoke-RestMethod "https://flow-control.dev/install-debug.ps1" | Invoke-Expression
The Windows installer will also install itself as update-flow.ps1
so you can just run update-flow
in a terminal to update to the latest release or nightly.
Or check your favorite local system package repository.
# Basic build
zig build --release=fast
# Cross-compile examples
zig build -Dtarget=x86_64-windows --prefix zig-out/win64
zig build -Dtarget=aarch64-linux-musl --prefix zig-out/arm-linux
The binary is:
zig-out/bin/flow
It is statically built (by default) and contains all the required tree-sitter parsers and queries. No additional runtime files are required. Place it in your path for convenient access.
Configuration is mostly dynamically maintained with various commands in the UI. It is stored under the standard user configuration path. Usually ~/.config/flow
on Linux. %APPDATA%\Roaming\flow on Windows.
Logs, traces and per-project most recently used file lists are stored in the standard user application state directory. Usually ~/.local/state/flow
on Linux and %APPDATA%\Roaming\flow on Windows.
Kitty, Ghostty and most other terminals have default keybindings that conflict with common editor commands. We highly recommend rebinding them to keys that are not generally used inside TUI applications.
For Kitty rebinding kitty_mod
is usually enough:
kitty_mod ctrl+alt
flow file.zig:42 # Open at line 42
flow --language zig CMakeLists.txt # Force file type
flow --list-languages # Show all supported languages
flow --help # List of command line options
Command | Action |
---|---|
F4 | Switch input mode |
Ctrl+Shift+P | Command palette |
Ctrl+F2 | View all keybindings |
Run the Edit keybindings
command to save the current keybinding mode to a file and open it for editing. Save your customized keybinds under a new name in the same directory to create an entirely new keybinding mode. Keybinding changes will take effect on restart.
In Development:
Future:
Join our Discord server or discuss on GitHub Discussions