A chat client for your local AI.
Named after a butt joke.
We're not sorry.
ChickenButt is a native Linux desktop app for chatting with local AI models through Ollama.
Website: https://www.chickenbutt.dev/
Source: https://github.com/pixelhackstudios/ChickenButt
Releases: Download the latest release from GitHub Releases
It is built with GTK4 and libadwaita, designed to feel at home on GNOME, and focused on making local AI pleasant to use without turning the interface into an aircraft cockpit.
| Multiple conversations | Readable code blocks |
The easiest way to get ChickenButt is the Linux Flatpak from GitHub Releases.
.flatpak from GitHub Releases.flatpak install --user ./ChickenButt-*-x86_64.flatpak
flatpak run io.github.pixelhackstudios.ChickenButt
Requires flatpak and a host Ollama service. The Flatpak ships its own GTK/runtime stack against org.gnome.Platform.
ChickenButt does not bundle Ollama or any AI models.
Install Ollama using its official Linux documentation, then make sure it is running:
ollama serve
Check your installed models:
ollama list
ChickenButt will still open when Ollama is unavailable. It will show health and onboarding information instead of simply crashing.
Build and install a development Flatpak from a checkout (does not require host GTK packages):
# once: flatpak + flatpak-builder + GNOME Platform/SDK 50 from Flathub
./scripts/build_flatpak.sh
flatpak run io.github.pixelhackstudios.ChickenButt
Details, inventory, and sandbox justifications:
Publishing to Flathub is a separate maintainer step and must follow current Flathub policy.
ChickenButt uses Meson for a traditional host install. You will need Python 3.10+, GTK4, libadwaita, WebKitGTK 6.0, PyGObject, dasbus, and build tools.
See DEPENDENCIES.md for Fedora and Ubuntu package names.
python3 scripts/check_dependencies.py --build
meson setup build --prefix="$HOME/.local"
meson install -C build
Launch the installed app:
chickenbutt
Make sure $HOME/.local/bin is on your PATH. Rebuild with meson setup --reconfigure build --prefix="$HOME/.local" and meson install -C build. Uninstall with ninja -C build uninstall from the retained build directory.
git clone https://github.com/pixelhackstudios/ChickenButt.git
cd ChickenButt
./run.sh
This runs the app directly from the checkout without installing anything.
Native GTK transcript instead of WebKit:
CHICKENBUTT_TRANSCRIPT=native ./run.sh
Check host dependencies without installing:
python3 scripts/check_dependencies.py
python3 scripts/check_dependencies.py --build
ChickenButt keeps its application data on your machine.
| Data | Location |
|---|---|
| Conversation history | ~/.local/share/chickenbutt/conversations.db |
| Settings | ~/.config/chickenbutt/settings.json |
Override the conversation database location with:
CHICKENBUTT_DB=/path/to/conversations.db ./run.sh
ChickenButt/
├── chickenbutt-web/ Project website source
├── data/ Desktop and AppStream metadata
├── icons/ Application icons
├── packaging/ Installed launcher script and Flatpak packaging
├── scripts/ Tests, checks, and development tools
├── vendor/ Vendored Python dependencies
├── web/ Embedded transcript interface
└── *.py Desktop application source
The two web directories serve different purposes:
web/ is part of the desktop application and renders conversations inside WebKit.chickenbutt-web/ is the public project website built with React and Vite.The project website lives in chickenbutt-web/.
cd chickenbutt-web
npm ci
npm run dev
Create a production build:
npm run build
Generated node_modules/ and dist/ directories are intentionally excluded from Git.
ChickenButt includes tests covering conversation storage, streaming, cancellation, Markdown sanitization, navigation security, desktop integration, dependency declarations, and installed layouts.
Run individual checks from the repository root:
python3 scripts/smoke_gui.py
python3 scripts/test_multichat.py
python3 scripts/test_message_actions.py
python3 scripts/test_ollama_health.py
python3 scripts/test_generation_lifecycle.py
The authoritative automated test commands are maintained in:
.github/workflows/tests.yml
For the website:
cd chickenbutt-web
npm run build
Bug reports, fixes, design improvements, and carefully scoped features are welcome.
Before making agent-assisted changes, read AGENTS.md. It defines the repository’s expectations around scope, verification, Git operations, and reporting.
Please keep changes focused and verify the behavior you touched.
ChickenButt is under active development.
Versioned Linux Flatpak builds are published on GitHub Releases. You can also run from source or build a development Flatpak. The public website lives in this repository. Flathub publication remains a separate maintainer step.
It is built primarily for GNOME-style Linux desktops, though other GTK-compatible environments may work.
ChickenButt is licensed under the GNU General Public License v3.0 or later.
Vendored third-party projects retain their original licenses:
60 commits
1 commits
Python
53.7%
JavaScript
43.1%
CSS
2.0%
A chat client for your local AI.
Named after a butt joke.
We're not sorry.
ChickenButt is a native Linux desktop app for chatting with local AI models through Ollama.
Website: https://www.chickenbutt.dev/
Source: https://github.com/pixelhackstudios/ChickenButt
Releases: Download the latest release from GitHub Releases
It is built with GTK4 and libadwaita, designed to feel at home on GNOME, and focused on making local AI pleasant to use without turning the interface into an aircraft cockpit.
| Multiple conversations | Readable code blocks |
The easiest way to get ChickenButt is the Linux Flatpak from GitHub Releases.
.flatpak from GitHub Releases.flatpak install --user ./ChickenButt-*-x86_64.flatpak
flatpak run io.github.pixelhackstudios.ChickenButt
Requires flatpak and a host Ollama service. The Flatpak ships its own GTK/runtime stack against org.gnome.Platform.
ChickenButt does not bundle Ollama or any AI models.
Install Ollama using its official Linux documentation, then make sure it is running:
ollama serve
Check your installed models:
ollama list
ChickenButt will still open when Ollama is unavailable. It will show health and onboarding information instead of simply crashing.
Build and install a development Flatpak from a checkout (does not require host GTK packages):
# once: flatpak + flatpak-builder + GNOME Platform/SDK 50 from Flathub
./scripts/build_flatpak.sh
flatpak run io.github.pixelhackstudios.ChickenButt
Details, inventory, and sandbox justifications:
Publishing to Flathub is a separate maintainer step and must follow current Flathub policy.
ChickenButt uses Meson for a traditional host install. You will need Python 3.10+, GTK4, libadwaita, WebKitGTK 6.0, PyGObject, dasbus, and build tools.
See DEPENDENCIES.md for Fedora and Ubuntu package names.
python3 scripts/check_dependencies.py --build
meson setup build --prefix="$HOME/.local"
meson install -C build
Launch the installed app:
chickenbutt
Make sure $HOME/.local/bin is on your PATH. Rebuild with meson setup --reconfigure build --prefix="$HOME/.local" and meson install -C build. Uninstall with ninja -C build uninstall from the retained build directory.
git clone https://github.com/pixelhackstudios/ChickenButt.git
cd ChickenButt
./run.sh
This runs the app directly from the checkout without installing anything.
Native GTK transcript instead of WebKit:
CHICKENBUTT_TRANSCRIPT=native ./run.sh
Check host dependencies without installing:
python3 scripts/check_dependencies.py
python3 scripts/check_dependencies.py --build
ChickenButt keeps its application data on your machine.
| Data | Location |
|---|---|
| Conversation history | ~/.local/share/chickenbutt/conversations.db |
| Settings | ~/.config/chickenbutt/settings.json |
Override the conversation database location with:
CHICKENBUTT_DB=/path/to/conversations.db ./run.sh
ChickenButt/
├── chickenbutt-web/ Project website source
├── data/ Desktop and AppStream metadata
├── icons/ Application icons
├── packaging/ Installed launcher script and Flatpak packaging
├── scripts/ Tests, checks, and development tools
├── vendor/ Vendored Python dependencies
├── web/ Embedded transcript interface
└── *.py Desktop application source
The two web directories serve different purposes:
web/ is part of the desktop application and renders conversations inside WebKit.chickenbutt-web/ is the public project website built with React and Vite.The project website lives in chickenbutt-web/.
cd chickenbutt-web
npm ci
npm run dev
Create a production build:
npm run build
Generated node_modules/ and dist/ directories are intentionally excluded from Git.
ChickenButt includes tests covering conversation storage, streaming, cancellation, Markdown sanitization, navigation security, desktop integration, dependency declarations, and installed layouts.
Run individual checks from the repository root:
python3 scripts/smoke_gui.py
python3 scripts/test_multichat.py
python3 scripts/test_message_actions.py
python3 scripts/test_ollama_health.py
python3 scripts/test_generation_lifecycle.py
The authoritative automated test commands are maintained in:
.github/workflows/tests.yml
For the website:
cd chickenbutt-web
npm run build
Bug reports, fixes, design improvements, and carefully scoped features are welcome.
Before making agent-assisted changes, read AGENTS.md. It defines the repository’s expectations around scope, verification, Git operations, and reporting.
Please keep changes focused and verify the behavior you touched.
ChickenButt is under active development.
Versioned Linux Flatpak builds are published on GitHub Releases. You can also run from source or build a development Flatpak. The public website lives in this repository. Flathub publication remains a separate maintainer step.
It is built primarily for GNOME-style Linux desktops, though other GTK-compatible environments may work.
ChickenButt is licensed under the GNU General Public License v3.0 or later.
Vendored third-party projects retain their original licenses:
60 commits
1 commits
Python
53.7%
JavaScript
43.1%
CSS
2.0%