Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eruvanos/retro-cli
A cli tool for distributed team retros(build in a few hours + a few more)
https://github.com/eruvanos/retro-cli
cli python retro rpc socket
Last synced: 4 months ago
JSON representation
A cli tool for distributed team retros(build in a few hours + a few more)
- Host: GitHub
- URL: https://github.com/eruvanos/retro-cli
- Owner: eruvanos
- Created: 2020-10-17T02:42:38.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-09T07:54:01.000Z (5 months ago)
- Last Synced: 2024-09-09T09:33:11.441Z (5 months ago)
- Topics: cli, python, retro, rpc, socket
- Language: Python
- Homepage:
- Size: 236 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
> This is more like a POC. While the base features work, the user experience might be a little ruff.
> I might come back to reimplement this using [Textual](https://www.textualize.io/projects/#textual)# Retro on the commandline
Retro-CLI uses ngrok to setup a local server and generate an invitation code for others to join.
Only the host needs an ngrok.com account.## Features
* Host or join retro
* Add item in HAPPY, NEUTRAL, or BAD column
* Remove item
* Move item
* Mark item as done (strike through not visualized in Jetbrains IDEA terminals)
* Connection via ngrox.com
* End-to-End encryption![screenshot](screenshot.png)
## Installation
### Requires Python 3.8+
```
brew install python
# or even better, use pyenv
brew install pyenv
pyenv install 3.9.0
```### Install cli
```
pipx install git+https://github.com/eruvanos/retro-cli.git#egg=retro# or with pure pip
pip install git+https://github.com/eruvanos/retro-cli.git#egg=retro
```> This will also install ngrok on your path
## Usage
#### Start as host
Configure your NGrok auth token. (Register at https://ngrok.com to get it)
Starts the storage backend and generates an invitation code, which is shown in the console.```
ngrok authtoken
retro -s
# to only start the server, without the retro UI
retro -so
```#### Join a host
Starts the app and asks for the invitation code of the host.
```
retro
```#### Shortcuts
* `CTRL + q` - Exit
* `CTRL + r` - Request data from server (Refresh)
* `CTRL + p` - Ping server and print latency#### Commands
##### Add a new item
You cann add items to the retro board by typing in your text, tusing a prefix to assign the item to a column.
Prefix:
- `+` Happy
- `.` Neutral
- `-` Sad##### Move an item
`mv `
##### Toggle item done-state
`! `
##### Remove an item
`rm `
## Missing
- persist retro items on host, so a restart doesn't kill them
- use [Textualize](https://github.com/Textualize/textual)
- bring mouse support
- show help within the app
- add tests!## Architecture
```
┌──────────────────────────────────────────────────┐ ┌──────────────────────────────────────────────────┐
│ App │ │ Backend │
│ │ │ │
│┌───────────────────────────────────────────────┐ │ │┌────────────────────────────────────────────────┐│
││ │ │ ││ ││
││ prompt-toolkit │ │ ││ InMemoryStore ││
││ │ │ ││ ││
│└───────────────────────────────────────────────┘ │ │└────────────────────────────────────────────────┘│
│┌───────────────────────────────────────────────┐ │ │┌────────────────────────────────────────────────┐│
││ │ │ ││ ││
││ RPCStoreClient │ │ ││ RPCHandler ││
││ │ │ ││ ││
│└───────────────────────────────────────────────┘ │ │└────────────────────────────────────────────────┘│
│┌───────────────────────────────────────────────┐ │ │┌────────────────────────────────────────────────┐│
││ SecureNetwork │ │ ││ SecureNetwork ││
││ (use fernet encryption) │ │ ││ (use fernet encryption) ││
││ │ │ ││ ││
│└───────────────────────────────────────────────┘ │ │└────────────────────────────────────────────────┘│
│┌───────────────────────────────────────────────┐ │ │┌────────────────────────────────────────────────┐│
││ │ │ ││ ││
││ TCP socket │ │ ││ TCP socket ││
││ │ │ ││ ││
│└───────────────────────────────────────────────┘ │ │└────────────────────────────────────────────────┘│
│┌─────────────────────────────────────────────────┴──┴─────────────────────────────────────────────────┐│
││ ││
││ pyngrok ││
││ ││
│└─────────────────────────────────────────────────┬──┬─────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────┘ └──────────────────────────────────────────────────┘Created with Monodraw
```