💡 Which GUI package should I choose? Choose Tray if you want ComiGo to keep running in the background and manage it from the system tray. The Tray version starts the local Web service and opens the reader in your browser; the tray menu can open the browser, copy the reading URL, open config/library folders, switch languages, check for updates, and toggle Tailscale remote access. On Windows, it can also register folder context menus, file associations, and desktop shortcuts.
Choose Desktop if you prefer a regular app window. It wraps the same ComiGo reader in a Wails desktop shell and adds desktop-only actions such as selecting folders with the system picker and moving local source files to the system trash after confirmation. The current Desktop build does not include the tray menu or built-in Tailscale remote access.
macOS tip: If macOS says the app is damaged and should be moved to Trash, the downloaded file is usually not actually broken. Run this after moving the app to Applications:
# Recommended:
installer=$(curl -fsSL https://raw.githubusercontent.com/yumenaka/comigo/master/get.sh) && bash -c "$installer" --
# For users in Mainland China:
installer=$(curl -fsSL https://comigo.xyz/get.sh) && bash -c "$installer" -- --cn
# If you have Golang (go 1.23 or higher):
go install github.com/yumenaka/comigo/cmd/comi@latest
The installer defaults to $HOME/.local/bin and does not edit shell configuration. It checks both the available comi command and the destination file. If the requested version is already installed, a terminal prompt offers skip (default) or overwrite at the displayed destination; without a terminal it skips. Use --force to overwrite the same version non-interactively.
For the examples below, first download the script with curl -fSL -o get.sh https://raw.githubusercontent.com/yumenaka/comigo/master/get.sh.
bash get.sh --help
bash get.sh --version v1.2.22
bash get.sh --system # /usr/local/bin; root-owned, sudo when needed
bash get.sh --install-dir "$HOME/bin" # overrides COMIGO_INSTALL_DIR
bash get.sh --force # overwrite the same version
The destination remains explicit: an existing command elsewhere is not automatically replaced. Use --system or --install-dir to select its directory. The installer reports if PATH selects another copy and prints shell-specific PATH instructions. Explicit directories never silently fall back; symlink targets are rejected. To uninstall, remove only comi from the chosen directory (use the package manager if it manages that copy).
Downloads require the release asset checksums.txt; for older releases without it, explicitly add --skip-checksum to disable verification. make all generates the SHA-256 manifest after building all packages; publish it alongside the release assets. To regenerate it separately, run make checksums VERSION=vX.Y.Z.
# Open current directory
comi .
# Specify port and path
comi -p 8080 /path/to/manga
Configuration File
Comigo supports configuration file locations:
User Home Directory
Windows: C:\Users\username\.config\comigo.toml
Linux/MacOS: /home/username/.config/comigo.toml
Default location read at startup
Program Directory
Place comigo.toml in the same directory as the executable
Suitable for portable usage
Current Working Directory
Searches for configuration file in the current directory when running commands
Custom Location
Specify configuration file path using the --config parameter
Development with mise
The committed mise.toml pins Go, Bun, GNU Make, templ, Wails v2, Air, sqlc, Ent, and goversioninfo. It uses mise's documented core, go:, and conda: backends; GNU Make is provided by conda:make, whose mise backend supports macOS, Linux, and Windows x64 without a separate Conda installation.
The initialization and task flow below was verified on macOS ARM64 with mise 2026.8.14. The Linux and Windows commands and platform limits come from the linked official mise and Wails documentation.
curl https://mise.run | sh
# Bash
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
# Zsh (use this instead on the default macOS shell)
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
Restart the shell after adding one activation line. Homebrew is also supported with brew install mise, though the official installer is mise's recommended method.
Windows PowerShell:
# Recommended; Scoop also adds mise shims to PATH.
scoop install mise
# Alternative
winget install jdx.mise
PowerShell activation is optional when the Scoop shims are available. To enable automatic environment switching, add the official activation command to your actual PowerShell profile:
The commands are the same in Bash, Zsh, and PowerShell:
git clone https://github.com/yumenaka/comigo.git
cd comigo
mise trust
mise install
mise run setup
mise doctor
mise install installs the pinned tools. mise run setup downloads Go modules and runs bun install; mise tasks also install any missing configured tools automatically. Run wails doctor once before desktop development. Wails still needs native platform components that mise cannot supply: Xcode Command Line Tools on macOS, WebView2 on Windows, or GCC, GTK3, and WebKitGTK development packages on Linux. See the official Wails v2 installation guide.
On Windows x64, normal mise tasks work from PowerShell. The release-oriented Make targets additionally use POSIX utilities such as sh, cp, rm, zip, and find, so run those targets in MSYS2 with its toolchain on PATH. The mise Conda backend does not currently list Windows ARM64; on that host, install Make through MSYS2 and run the release targets there. Docker, platform SDKs, dpkg, UPX, and similar release dependencies remain system-managed.
Common tasks and aliases
Run mise tasks to see the full list. Task aliases use the documented mise run <alias> form.
Task
Alias
Purpose
mise run setup
mise run i
Install Go modules and frontend packages
mise run generate
mise run g / mise run gen
Format and generate templ output
mise run frontend
mise run fe
Build unminified frontend assets
mise run dev
mise run d
Start Air hot reload
mise run run
mise run r
Generate templates and run the Web server
mise run test
mise run t
Run all Go tests
mise run sqlc
mise run db
Regenerate sqlc output
mise run wails-dev
mise run wd
Start Wails v2 development mode
mise run wails-build
mise run wb
Build the current platform's Wails app
mise run release
mise run rel
Run the existing make all release matrix
mise run clean
mise run c
Clean Make build output
Direct Make targets remain available inside the pinned environment, for example mise exec -- make wails-prepare or mise exec -- make docker-help.
Feedback and Support
If you have any suggestions or encounter issues, feel free to: