https://github.com/bourgeoisor/kaero
Lightweight and cozy terminal-based IRC client built in Golang.
https://github.com/bourgeoisor/kaero
internet-relay-chat irc irc-client terminal tui
Last synced: 4 months ago
JSON representation
Lightweight and cozy terminal-based IRC client built in Golang.
- Host: GitHub
- URL: https://github.com/bourgeoisor/kaero
- Owner: bourgeoisor
- License: gpl-3.0
- Created: 2024-05-18T02:24:48.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-02T02:15:22.000Z (over 1 year ago)
- Last Synced: 2025-08-12T15:44:17.156Z (11 months ago)
- Topics: internet-relay-chat, irc, irc-client, terminal, tui
- Language: Go
- Homepage:
- Size: 94.7 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
Awesome Lists containing this project
README

## What is Kaero?
Kaero is a lightweight and cozy terminal-based IRC client made in Golang. In Japanese, kaero 帰る means "to return (home)" which I find poetic for an IRC client. The name is also phonetically similar to kaeru かえる which means "frog" (thus the logo).

## Features
These features are currently supported.
- 125 server replies (out of ~150 well known numerics) implemented
- 31 user commands implemented
- Can join up to 9 channels in one server network
- SSL/TLS support
- UTF-8 with full-width characters
- File-based configuration
## Not supported
These features are not supported yet but may be implemented in the future.
- User prefixes
- Channel prefixes
- Customizable colors
- Customizable keybinds
- Highlight mentions
- Timestamps in logs
- Direct messages
- CTCP
- DCC
- IRCv3
- CAP negotiations
- Identity registration
- User list as a side panel
- Multi-network support
## Keybinds
- `Ctrl + C`: quit the application
- `Enter`: toggle the input bar, or send message is non-empty
- `Alt + [0-9]`: swap between channels
- `PgUp` / `PgDown`: scroll through the chat log
## Commands
- `/ping`
- `/quit []`
- `/nick `
- `/oper `
- `/motd []`
- `/version []`
- `/admin []`
- `/connect [ []]`
- `/lusers`
- `/time []`
- `/stats []`
- `/help []`
- `/info`
- `/join {,} [{,}]`
- `/part {,} []` (alias: `/leave ...`)
- `/topic []`
- `/names {,}`
- `/list [{,}] [{,}]`
- `/invite `
- `/kick *( "," ) []`
- `/who `
- `/whois [] `
- `/whowas []`
- `/kill `
- `/rehash`
- `/restart`
- `/squit `
- `/away []`
- `/links`
- `/userhost { }`
- `/wallops `
## Config file
Kaero expects a config file named `config.json` located at the root of the executable.
Here's an example config:
```json
{
"servers": [
{
"host": "irc.libera.chat",
"port": 6697,
"ssl": true,
"nick": "myName",
"username": "myName",
"realName": "myName",
"defaultChannels": [
"#libera"
]
}
]
}
```
## How to run?
I am not currently publishing binaries, so they need to be built manually.
1. Clone the repository.
```sh
git clone https://github.com/bourgeoisor/kaero
cd kaero/
```
3. Fetch the required dependencies and build the binary.
```sh
go get
go build
```
5. Run the binary.
```sh
./kaero
```