Skip to content

Commit d1dd3af

Browse files
committed
fix: readme for release
1 parent 3307349 commit d1dd3af

34 files changed

+235
-128
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,6 @@ prompt.txt
6767
.agent/
6868
agent-bak/
6969
tmp/
70-
*.svg
71-
*.png
70+
# *.svg
71+
# *.png
7272
dhl.txt

README.md

Lines changed: 112 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,132 +1,162 @@
11
<div align="center">
2-
3-
<img alt="Scriberr" src="cropped-main-logo.png" width="480" />
4-
5-
Self‑hostable, secure & private offline transcription. Drop in a recording, get clean transcripts, highlight key moments, take notes or chat with your audio using your favorite LLM — all without sending your data to the cloud.
6-
7-
[Website](https://scriberr.app)[Docs](https://scriberr.app/docs/intro.html)[API Reference](https://scriberr.app/api.html)[Changelog](https://scriberr.app/changelog.html)
2+
<img src="logo.svg" height="100" style="vertical-align: middle;" />
3+
<img src="logo-text.svg" height="80" style="vertical-align: middle;" />
4+
</div>
85

96
<p align="center">
10-
<a href='https://ko-fi.com/H2H41KQZA3' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
7+
Scriberr is an open-source, and completely offline audio transcription application designed for self-hosters who value privacy and performance.
118
</p>
12-
</div>
139

14-
**Collecting feedback on new feature. Drop by https://github.com/rishikanthc/Scriberr/discussions/200 to share your opinions.**
10+
<p align="center">
11+
<a href="https://scriberr.app">Website</a> •
12+
<a href="https://scriberr.app/docs/">Docs</a> •
13+
<a href="https://scriberr.app/api">API Reference</a>
14+
</p>
1515

16-
---
16+
<div align="center">
17+
<img src="screenshots/hero-desktop.png" alt="Scriberr Desktop App" width="800" />
18+
<br />
19+
<img src="screenshots/hero-mobile.png" alt="Scriberr Mobile App" width="300" />
20+
</div>
1721

1822
## Sponsors
1923

2024
![recall.ai-logo](https://cdn.prod.website-files.com/620d732b1f1f7b244ac89f0e/66b294e51ee15f18dd2b171e_recall-logo.svg) Meeting Transcription API
2125
If you're looking for a transcription API for meetings, consider checking out [Recall.ai](https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=rishikanthc-scriberr), an API that works with Zoom, Google Meet, Microsoft Teams, and more.
2226
Recall.ai diarizes by pulling the speaker data and seperate audio streams from the meeting platforms, which means 100% accurate speaker diarization with actual speaker names.
2327

24-
# Introduction
28+
## Introduction
2529

26-
Scriberr is a self‑hosted offline transcription app for converting audio into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr runs on modern CPUs (no GPU required, though GPUs can accelerate processing) and offers a range of trade‑offs between speed and transcription quality.
30+
At its core, Scriberr allows you to transcribe audio and video locally on your machine, ensuring no data is ever sent to a third-party cloud provider.
31+
Leveraging state-of-the-art machine learning models (such as **Whisper**, **NVIDIA Parakeet**, and **Canary**), it delivers high-accuracy text with word-level timing.
2732

28-
- Built with React (frontend) and Go (backend), packaged as a single binary
29-
- Uses WhisperX with open‑source Whisper models for accurate transcription
30-
- Clean, distraction‑free UI optimized for reading and working with transcripts
33+
Scriberr goes beyond simple transcription and provides various advanced capabilities.
34+
It combines powerful under-the-hood AI with a polished, fluid user interface that makes managing your recordings feel effortless. Whether you are sorting through voice notes or analyzing long meetings, Scriberr provides a beautiful environment to get work done:
3135

32-
<p align="center">
33-
<img alt="Scriberr homepage" src="screenshots/scriberr-homepage.png" width="720" />
34-
</p>
36+
- **Smart Speaker Detection**: Scriberr automatically detects different speakers (Diarization) and labels exactly who said what.
37+
- **Chat with your Audio**: Connect seamlessly with Ollama or OpenAI API compatible providers. You can generate summaries, ask questions, or have a full conversation with your transcripts right inside the app.
38+
- **Built for your Workflow**: With extensive APIs and Folder Watcher that automatically processes new files in a folder, Scriberr fits right into your existing automations (like n8n).
39+
- **Capture & Organize**: Use the built-in audio recorder to capture thoughts on the fly, and the integrated note-taking features to annotate your transcripts as you listen.
40+
- **Native Experience everywhere**: Scriberr supports PWA (Progressive Web App) installation, giving you a native app experience on your desktop or mobile device.
41+
- **A Polished UI**: I’ve focused on the little UI niceties that make the app feel responsive and satisfying to use.
42+
43+
[View full list of features →](https://scriberr.app/docs/features)
44+
45+
### Why I built this
3546

36-
## Features
47+
The inspiration for Scriberr was born out of privacy paranoia and not wanting to pay for subscription.
48+
About a year ago, I purchased a [Plaud Note](https://www.plaud.ai/) for recording voice memos. I loved the device itself; the form factor, microphone quality, and workflow were excellent.
3749

38-
- Accurate transcription with word‑level timing
39-
- Speaker diarization (identify and label speakers)
40-
- Transcript reader with playback follow‑along and seek‑from‑text
41-
- Highlights and lightweight note‑taking (jump note → audio/transcript)
42-
- Summarize and chat over transcripts (OpenAI or local models via Ollama)
43-
- Transcription profiles for re‑usable configurations
44-
- YouTube video transcription (paste a link and transcribe)
45-
- Quick transcribe (ephemeral) and batch upload
46-
- REST API coverage for all major features + API key management
47-
- Download transcripts as JSON/SRT/TXT (and more)
48-
- Support for Nvidia GPUs [New - Experimental]
50+
However, transcription was done on their cloud servers. As someone who is paranoid about privacy I wasn't comfortable with uploading my recordings to a third party provider.
51+
Moreover I was hit with subscription costs: $100 a year for 20 hours of transcription per month, or $240 a year for unlimited access. As an avid self-hoster with a background in ML and AI, it felt wrong to pay such a premium for a service I knew I could engineer myself.
52+
53+
I decided to build Scriberr to bridge that gap, creating a powerful, private, and free alternative for everyone.
4954

5055
## Screenshots
5156

5257
<details>
53-
<summary>Show screenshots</summary>
58+
<summary>Click to expand</summary>
59+
60+
<p align="center">
61+
<img alt="Transcript view" src="screenshots/transcript-light.png" width="720" />
62+
</p>
63+
<p align="center"><em>Transcript reader with playback follow‑along and seek‑from‑text.</em></p>
5464

5565
<p align="center">
56-
<img alt="Transcript view" src="screenshots/scriberr-transcript page.png" width="720" />
66+
<img alt="Chat with Audio" src="screenshots/chat.png" width="720" />
5767
</p>
58-
<p align="center"><em>Minimal transcript reader with playback follow‑along and seek‑from‑text.</em></p>
68+
<p align="center"><em>Chat with your transcripts using local LLMs or OpenAI.</em></p>
5969

6070
<p align="center">
61-
<img alt="Summarize transcripts" src="screenshots/scriberr-summarize transcripts.png" width="720" />
71+
<img alt="Notes and Highlights" src="screenshots/notes.png" width="720" />
6272
</p>
63-
<p align="center"><em>Summarize long recordings and use custom prompts.</em></p>
73+
<p align="center"><em>Highlight key moments and take notes while listening.</em></p>
6474

6575
<p align="center">
66-
<img alt="API key management" src="screenshots/scriberr-api-key-management.png" width="720" />
76+
<img alt="AI Summaries" src="screenshots/ai-summary.png" width="720" />
6777
</p>
68-
<p align="center"><em>Generate and manage API keys for the REST API.</em></p>
78+
<p align="center"><em>Generate comprehensive summaries of your recordings.</em></p>
6979

7080
<p align="center">
71-
<img alt="YouTube video transcription" src="screenshots/scriberr-youtube-video.png" width="720" />
81+
<strong style="font-size: 1.2em;">Dark Mode</strong>
7282
</p>
73-
<p align="center"><em>Transcribe audio directly from a YouTube link.</em></p>
83+
84+
<p align="center">
85+
<img alt="Homepage Dark Mode" src="screenshots/homepage-dark.png" width="720" />
86+
</p>
87+
<p align="center"><em>Homepage in Dark Mode.</em></p>
88+
89+
<p align="center">
90+
<img alt="Transcript Dark Mode" src="screenshots/transcript-dark.png" width="720" />
91+
</p>
92+
<p align="center"><em>Transcript view in Dark Mode.</em></p>
93+
94+
### Mobile
95+
96+
<p align="center">
97+
<img alt="Mobile Homepage" src="screenshots/homepage-mobile.PNG" width="300" />
98+
<img alt="Mobile Homepage Dark" src="screenshots/homepage-mobile-dark.PNG" width="300" />
99+
</p>
100+
<p align="center"><em>PWA mobile app (Light & Dark).</em></p>
101+
102+
<p align="center">
103+
<img alt="Mobile Transcript" src="screenshots/transcript-mobile.PNG" width="300" />
104+
<img alt="Mobile Transcript Dark" src="screenshots/transcript-mobile-dark.PNG" width="300" />
105+
</p>
106+
<p align="center"><em>Mobile transcript reading experience.</em></p>
74107

75108
</details>
76109

77110
## Installation
78111

79-
Visit the website for the full guide: https://scriberr.app/docs/installation.html
112+
Get Scriberr running on your system in a few minutes.
113+
114+
### Install with Homebrew (macOS & Linux)
80115

81-
### Homebrew (macOS & Linux)
116+
The easiest way to install Scriberr is using Homebrew. If you don’t have Homebrew installed, [get it here first](https://brew.sh/).
82117

83118
```bash
119+
# Add the Scriberr tap
84120
brew tap rishikanthc/scriberr
121+
122+
# Install Scriberr (automatically installs UV dependency)
85123
brew install scriberr
86124

87125
# Start the server
88126
scriberr
89127
```
90128

91-
Open http://localhost:8080 in your browser.
129+
Open [http://localhost:8080](http://localhost:8080) in your browser.
130+
131+
### Configuration
92132

93-
Optional configuration via .env (sensible defaults provided):
133+
Scriberr works out of the box. To customize settings, create a `.env` file:
94134

95-
```env
96-
# Server
135+
```bash
136+
# Server settings
97137
HOST=localhost
98138
PORT=8080
99139

100-
# Storage
140+
# Data storage (optional)
101141
DATABASE_PATH=./data/scriberr.db
102142
UPLOAD_DIR=./data/uploads
103143
WHISPERX_ENV=./data/whisperx-env
104-
105-
# Custom paths (if needed)
106-
UV_PATH=/custom/path/to/uv
107144
```
108145

109-
### Docker
146+
### Docker Deployment
110147

111-
Run the command below in a shell:
148+
For a containerized setup, you can use Docker. We provide two configurations: one for standard CPU usage and one optimized for NVIDIA GPUs (CUDA).
112149

113-
```bash
114-
docker run -d \
115-
--name scriberr \
116-
-p 8080:8080 \
117-
-v scriberr_data:/app/data \
118-
--restart unless-stopped \
119-
ghcr.io/rishikanthc/scriberr:latest
120-
```
150+
#### Standard Deployment (CPU)
121151

122-
#### Docker Compose:
152+
Use this configuration for running Scriberr on any machine without a dedicated NVIDIA GPU.
153+
154+
1. Create a file named `docker-compose.yml`:
123155

124156
```yaml
125-
version: '3.9'
126157
services:
127158
scriberr:
128159
image: ghcr.io/rishikanthc/scriberr:latest
129-
container_name: scriberr
130160
ports:
131161
- "8080:8080"
132162
volumes:
@@ -137,7 +167,19 @@ volumes:
137167
scriberr_data:
138168
```
139169
140-
#### With GPU (CUDA)
170+
2. Run the container:
171+
172+
```bash
173+
docker compose up -d
174+
```
175+
176+
#### NVIDIA GPU Deployment (CUDA)
177+
178+
If you have a compatible NVIDIA GPU, this configuration enables hardware acceleration for significantly faster transcription.
179+
180+
1. Ensure you have the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) installed.
181+
2. Create a file named `docker-compose.cuda.yml`:
182+
141183
```yaml
142184
version: "3.9"
143185
services:
@@ -164,68 +206,16 @@ volumes:
164206
scriberr_data: {}
165207
```
166208
167-
Then open http://localhost:8080.
168-
169-
## Diarization (speaker identification)
170-
171-
Scriberr uses the open‑source pyannote models for local speaker diarization. Models are hosted on Hugging Face and require an access token (only used to download models — diarization runs locally).
172-
173-
1) Create an account on https://huggingface.co
174-
175-
2) Visit and accept the user conditions for these repositories:
176-
- https://huggingface.co/pyannote/speaker-diarization-3.0
177-
- https://huggingface.co/pyannote/speaker-diarization
178-
- https://huggingface.co/pyannote/speaker-diarization-3.1
179-
- https://huggingface.co/pyannote/segmentation-3.0
180-
181-
Verify they appear here: https://huggingface.co/settings/gated-repos
182-
183-
3) Create an access token under Settings → Access Tokens and enable all permissions under “Repositories”. Keep it safe.
184-
185-
4) In Scriberr, when creating a profile or using Transcribe+, open the Diarization tab and paste the token into the “Hugging Face Token” field.
186-
187-
See the full guide: https://scriberr.app/docs/diarization.html
188-
189-
<p align="center">
190-
<img alt="Diarization setup" src="screenshots/scriberr-diarization-setup.png" width="420" />
191-
</p>
192-
193-
## Summarization (Ollama)
194-
195-
Scribber uses different models from Ollama (local, open-source and free) or OpenAi (online, propietary, paid) in order to automatically summarize the transcriptions. To connect, just go to settings and introduce either the Ollama port or the OpenAI API.
196-
A common error is that if Ollama has been installed through Docker, rather then connecting via "http://localhost:11434" you sohuld instead connect through "http://host.docker.internal:11434" (change the port to whichever you have used, automatically uses that one). That way Scriberr directly connects to the Docker, avoiding a "Failed to fetch model" error and alike.
197-
198-
## API
199-
200-
Scriberr exposes a clean REST API for most features (transcription, chat, notes, summaries, admin, and more). Authentication supports JWT or API keys depending on endpoint.
201-
202-
- API Reference: https://scriberr.app/api.html
203-
- Quick start examples (cURL and JS) on the API page
204-
- Generate or manage API keys in the app
205-
206-
## Contributing
207-
208-
Issues and PRs are welcome. Please open an issue to discuss large changes first and keep PRs focused.
209-
210-
Local dev overview:
209+
3. Run the container with the CUDA configuration:
211210
212211
```bash
213-
# Backend (dev)
214-
cp -n .env.example .env || true
215-
go run cmd/server/main.go
216-
217-
# Frontend (dev)
218-
cd web/frontend
219-
npm ci
220-
npm run dev
221-
222-
# Full build (embeds UI in Go binary)
223-
./build.sh
224-
./scriberr
212+
docker compose -f docker-compose.cuda.yml up -d
225213
```
226214

227-
Coding style: `go fmt ./...`, `go vet ./...`, and `cd web/frontend && npm run lint`.
215+
## Post installation
216+
217+
Once you have Scriberr up and running:
228218

229-
## Donating
219+
- **Configure Diarization**: To enable speaker identification, visit the [Configuration page](https://scriberr.app/docs/configuration).
220+
- **Usage Guide**: For a detailed usage guide, visit [https://scriberr.app/docs/usage](https://scriberr.app/docs/usage).
230221

231-
<a href='https://ko-fi.com/H2H41KQZA3' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>

0 commit comments

Comments
 (0)