Contributing to Cokpyt
March 16, 2026 ยท View on GitHub
Thanks for taking the time. Every bug report, feature idea, and pull request makes Cokpyt better for everyone in the pip ecosystem. Here is everything you need to know to get involved.
Table of Contents
- Code of Conduct
- Reporting Bugs
- Suggesting Features
- Setting Up the Dev Environment
- Project Structure
- Making a Pull Request
- Style Guidelines
Code of Conduct
Be respectful. Everyone contributing here is doing so voluntarily. Constructive criticism is welcome; personal attacks are not.
Reporting Bugs
Before opening an issue, check whether it has already been reported on the Issues page.
When filing a new bug report, include:
- Your operating system and version
- Your Python version (
python --version) - Your pip version (
pip --version) - The Cokpyt version (shown in Settings)
- Exact steps to reproduce the problem
- What you expected to happen
- What actually happened
- Any relevant output from the Logs page inside Cokpyt
Suggesting Features
Open an issue and prefix the title with [Feature]. Describe the problem you are trying to solve and how your proposed feature would address it. Screenshots, mockups, or references to how other tools handle it are always helpful.
Setting Up the Dev Environment
Prerequisites
| Tool | Version |
|---|---|
| Go | 1.21 or later |
| Node.js | 18 or later |
| Wails CLI | v2 |
Install the Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
Clone and run
git clone https://github.com/d3uceY/Cokpyt.git
cd Cokpyt
# Install frontend dependencies
cd frontend && npm install && cd ..
# Start the dev server (hot reload on both Go and React changes)
wails dev
Build a production binary
# Windows
wails build --target windows/amd64 --nsis
# macOS (universal binary)
wails build --target darwin/universal
# Linux
wails build --target linux/amd64
Project Structure
Cokpyt/
app.go -- Wails app lifecycle and method bindings
main.go -- Entry point
backend/
pip/ -- All Go logic: package management, doctor, history, cleanup, search
frontend/
src/
pages/ -- One file per page (Dashboard, InstalledPackages, Search, ...)
components/ -- Shared UI components (layout, sidebar, terminal panel)
lib/ -- Utility functions
wailsjs/ -- Auto-generated Go bindings (do not edit by hand)
build/
windows/installer/ -- NSIS installer script
The Go backend exposes functions through Wails bindings. The React frontend calls them via wailsjs/go/main/App. If you add a new Go method to App, regenerate the bindings by running wails generate module or by doing a full wails build.
Making a Pull Request
- Fork the repo and create a branch from
main:git checkout -b fix/your-branch-name - Make your changes and make sure the project still builds (
wails build). - If you changed frontend code, make sure TypeScript is clean:
cd frontend && npx tsc --noEmit - Commit with a clear message describing what changed and why.
- Push your branch and open a pull request against
main. - Fill out the PR description -- link to any related issues and explain what the change does.
Keep pull requests focused. One fix or feature per PR is much easier to review than a large multi-purpose change.
Style Guidelines
Go
- Follow standard Go formatting. Run
gofmtbefore committing. - Error handling: return errors, do not panic in library code.
TypeScript / React
- Use explicit types. Avoid
anywhere a proper type exists. - Components live in
frontend/src/components/orfrontend/src/pages/. - Keep page components focused on layout and data wiring. Move logic into hooks or utility functions.
CSS / Tailwind
- Stick to the existing design conventions: the
#0048adblue accent, the monochrome border palette, and thefont-black uppercase tracking-widestheading style. - Do not introduce new third-party UI libraries without discussing it in an issue first.
Questions?
Open an issue or start a discussion on the GitHub repo. Happy to help.