summaryrefslogtreecommitdiff
path: root/README.md
blob: 0fc8ecab5bd0a241bb075989a7336765903b6dfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Eko

<p>
    <picture>
      <img width="768" height="192" alt="Eko Banner" src="./assets/eko-banner.png" />
    </picture>
    <br>
    <img alt="GitHub Release" src="https://img.shields.io/github/v/release/kyren223/eko?include_prereleases&sort=date&display_name=tag&style=for-the-badge&labelColor=%23005d66&color=%23F5A670">
    <img alt="GitHub License" src="https://img.shields.io/github/license/kyren223/eko?style=for-the-badge&labelColor=%23005d66&color=%23FFBF00">
</p>

The Discord alternative for Terminal nerds.

TODO(kyren): replace screenshot with tape (or have both?)

<p>
    <img src="./assets/eko-screenshot.png" width="100%" alt="Eko Showcase">
</p>

## Features

- 🟢 Vim-style navigation and editing
- šŸ”‘ SSH-like authentication using public key cryptography
- šŸŽØ Customizable colors
- šŸ–„ļø Smooth and responsive TUI experience
- šŸ“œ Open protocol for building clients and tools
- šŸ  Self-hostable or use the official instance

---

## Quick Install

Make sure to have a [Nerd Font](https://www.nerdfonts.com/) installed and enabled in your terminal.

### Install Latest Version

TODO(kyren): create the install.sh and then host it through eko

```
curl -sS https://eko.kyren.codes/install.sh | sh
```

### Homebrew (MACOS)

TODO(kyren): package for homebrew

```
brew install eko
```

### Winget (Windows)

TODO(kyren): package for winget

```
winget install eko
```

### Nix Flake

You know what to do

## Usage

Once installed, run `eko` in a terminal.

Use `tab` / `shift+tab` to cycle, `ctrl+s` to switch between sign-in and sign-up
and `enter` to confirm.

Use an existing SSH ed25519 key (e.g `~/.ssh/id_ed25519`) or specify a new
path to generate one.

By default, you will connect to the official instance.
For self hosting, see [Self Hosting](#self-hosting).

Press `?` to see available keybindings.
They are inspired by vim and should feel intuitive.

To ask questions, suggest features, or chat with the community,
it's recommended to join the official server.  
To do so press `a` while focused on the network list and paste `<invite code>` into it.

And that's it!

For configuration, self hosting and contributing, read below.

## Configuration

TODO(kyren): add instructions on configuration

### Self-Hosting

TODO(kyren): add instructions on self-hosting

## Contributing

See [contributing](https://github.com/kyren223/eko/blob/master/CONTRIBUTING.md)

### Building from source

Clone the repository

```
git clone https://github.com/kyren223/eko
```

Build the executable (make sure you have `go` installed)

```
cd eko && go build -o ./eko ./cmd/client
```

Move the executable to somewhere in your path so you can access it from anywhere

## Feedback

I’d love to hear your thoughts on this project.
Reach me via:

- Eko: `<My ID>` (focus the Signal pane, press `a` and paste)
- Discord: Kyren223

## Licenses

Copyright (C) 2025 Kyren223

All source code is licensed under [AGPLv3](https://github.com/kyren223/eko/raw/main/LICENSE).  
All content in the `assets` directory is licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/).
Logos and artwork are copyrighted works of Kyren223.