Thoughts is a simple self-hosted tool for facilitating retrospectives.
- Simple authentication, enter your name and start using the app
- Create a retrospective using one of the templates provided or use your own custom columns
- Add thoughts to the retrospective, only visible to you
- Group similar thoughts together
- Vote on thoughts to prioritize them
- Discuss thoughts with your team
- Add tasks to document action items
Note
Thoughts has live updates so that you can ensure everyone is on the same page ⚡️
The easiest ways to get started with Thoughts is to use the standalone binary release or the docker image.
Go to the releases page and download the latest release for your platform.
./thoughtsdocker run -p 3000:3000 -v $PWD/data:/data ghcr.io/ellgreen/thoughts:latestdocker run -p 3000:3000 \
-v $PWD/data:/data \
-e THOUGHTS_TLS_CERT_PATH="/path/to/your/tls.crt" \
-e THOUGHTS_TLS_KEY_PATH="/path/to/your/tls.key" \
ghcr.io/ellgreen/thoughts:latestTo enable AI features, you will need to set the THOUGHTS_OPENAI_API_KEY
environment variable.
You can follow the instructions to get an API key here:
https://platform.openai.com/api-keys
Adding an image to a thought always works — paste any https image or GIF
link and you get a preview before it is attached. No configuration needed.
To also get in-app GIF search, set THOUGHTS_GIF_API_KEY. The default
provider is Klipy, which is free for life:
a test key works immediately, and a production key (a form in their partner
panel) lifts the rate limit.
docker run -p 3000:3000 \
-v $PWD/data:/data \
-e THOUGHTS_GIF_API_KEY="your-key" \
ghcr.io/ellgreen/thoughts:latest| Variable | Values | Default |
|---|---|---|
THOUGHTS_GIF_API_KEY |
Your provider's API key | unset — search disabled |
THOUGHTS_GIF_PROVIDER |
klipy, giphy, none |
auto: klipy when a key is set |
Note
Google shut the Tenor API down on 30 June 2026, so THOUGHTS_TENOR_API_KEY
no longer does anything. Thoughts logs a warning if it is still set.
