▲ 55 r/omarchy

This is how you control Omarchy with your voice. Setup the default agent plus a transcription tool for the full Iron Man experience.

No need to wait for the next Omarchy version to have the full Iron Man experience! Get setup with OSTT in less than a minute to control the computer with your voice. Speak it and it shall be, welcome to the future!

https://ostt.ai


OSTT is a open source, terminal-native speech-to-text tool. Record from a hotkey, transcribe with local Whisper-compatible models or your chosen cloud provider, then send the result to your clipboard, a file, stdout, an AI prompt, or any shell command. Local transcription runs offline and supports GPU acceleration through Metal on macOS and CUDA or Vulkan on Linux.

OSTT is built for people who treat the terminal as a normal place for voice input to land. It does not assume one vendor, one subscription, or one app-specific workflow: use offline local models, bring your own API key for OpenAI, Deepgram, Groq, DeepInfra, AssemblyAI, Berget, ElevenLabs, or Mistral, and retry the same recording with another model when needed. Voice becomes text that can move through the same tools as everything else.

u/stengods — 2 days ago
▲ 90 r/rust

Building a TUI kanban board with mouse support to showcase the drag and drop functionality of ratcn.

If you support drag, you might as well support drop! And, with that in place, you can easily build a simple kanban board. I added it as a demo to the ratcn preview docs.

Ratcn is a library of beautifully designed terminal UI components for Ratatui apps, along with some mechanisms for event handling etc.

Thanks to the niceness of WASM, you can see all TUI components live in the browser.

Live app: https://ratcn.kristoferlund.se/docs/concepts/dragging.html

Will release the library any day (or week) now :)

u/stengods — 2 months ago
▲ 270 r/tui+1 crossposts

Live preview of the upcoming "shadcn for ratatui"

Finally, I manged to pull together a preview of the library I am working on.

Ratcn: beautifully designed terminal UI components that you can copy, paste, theme, and own in your application code.

https://ratcn.kristoferlund.se

The website is a preview as the library still very much is a work in progress. The docs section show live WASM previews of the components. Click around and let me know what you think. And, please post issues to GitHub with the types of components, patterns or features you would like to see. The docs are mostly AI generated, the library is mostly hacked by a human (me).

(alt+T to switch theme in any preview)

Wen release? I don't know, creating a library like this takes time, there are so many small details to consider. But I hope .. in a month or three for a first version.

https://github.com/kristoferlund/ratcn

u/stengods — 2 months ago
▲ 27 r/rust

Project update: Themeable components for Ratatui

Sneak peak! I am building themeable components for Ratatui.

Event handling, focus management and theming mostly done, now working on dialogs and toasts. Some work left to be done for sure but coming along nicely.

Component rendering will be immediate mode only, ui = fn(state). No state stored in components. State changes are handled by the application centrally, outside of the library and any components. Components can react to events and emit messages that lead to state changes. You can also opt out of this part and just use the theming in a "regular ratatui app"

Just theming:

let default = Button::new("Default").themed(&theme);
frame.render_widget(default, area);

Bind to a View that handles theming, focus, events, etc. Note that the render_with function still allows for any regular ratatui widget. render_widget for regular ratatui widget, render_child for library widget that accepts state and theme context etc.

View::new("root")
    .child("save", Button::new("save").on_activate(Msg::Save))
    .render_with(|frame, state, view| {
        let [top, main] = view.area().layout(&Layout::vertical([
            Constraint::Length(1),
            Constraint::Fill(1),
        ]));
        frame.render_widget(Line::from("My App").centered(), top);
        view.render_child(frame, "save", main);
    })
u/stengods — 2 months ago

The cost of adding new features is trending towards zero. Will that lead to an avalanche of feature-bloated applications?

I think it might.

I am using myself as an example. Yesterday, while brushing my teeth, I asked Claude Fable to make the recording visualisation in OSTT look nicer. A short conversation later, I had this really nice spectrum analyzer animation thing.

A few years ago, I would never have built something like this. Not because it was impossible, but because it is just way too much effort. I would have needed to spend days learning the maths, experimenting with animations, and implementing it all myself.

Now I can explore ideas like this almost for free.

That is incredibly powerful. It means teams can finally work through years of backlog items and ship features users have been asking for forever.

But there is another side to it.

If the cost of adding a feature approaches zero, what stops developers from adding every feature they can think of? Every random idea. Every shower thought. Every “wouldn’t it be cool if…” moment.

As for the OSTT recording visualisation, I’m pretty happy with it. Feature bloat or not.

I recorded a short video about it, see the comments.

reddit.com
u/stengods — 2 months ago
▲ 434 r/tui+1 crossposts

I am considering building a polished component library for Ratatui. Keep going or scrrap it?

It seems no one has done shadcn for Ratatui yet? An opinionated library of good looking components with theming support etc.

Maybe it is time? I am trying out some ideas. Thanks to the magic of Ratzilla, you can see live previews of your wasm compiled components directly in the docs website.

u/stengods — 2 months ago
▲ 62 r/hyprland+2 crossposts

New in OSTT: Automatic Paste, Text Replace Rules, and External Engines

I just released three new features for OSTT - the open speech to text tool for devs, Linux folks, Omarchy lovers, power users and regular macOS normies.

1. Automatic paste

Transcription results can now be pasted directly into the currently active application, making OSTT feel more integrated into your workflow.

2. Replace rules

Use deterministic text replacements after transcription to fix names, acronyms, common misspellings, and product terms.

3. External transcription engines

OSTT can now connect to custom transcription backends, including command-based engines and HTTP engines compatible with the OpenAI Whisper API format.

Full docs and install instructions: https://ostt.ai

u/stengods — 3 months ago
▲ 1 r/hyprland+1 crossposts

New in OSTT: Automatic Paste, Text Replace Rules, and External Engines

OSTT is an open speech-to-text tool for developers on Linux/Hyprland/Omarchy as well as macOS.

In this video I walk through three new OSTT features:

1. Automatic paste

Transcription results can now be pasted directly into the currently active application, making OSTT feel more integrated into your workflow.

2. Replace rules

Use deterministic text replacements after transcription to fix names, acronyms, common misspellings, and product terms.

3. External transcription engines

OSTT can now connect to custom transcription backends, including command-based engines and HTTP engines compatible with the OpenAI Whisper API format.

Full docs and install instructions:

https://ostt.ai

youtu.be
u/stengods — 3 months ago
▲ 65 r/omarchy

OSTT v0.0.14 - Offline dictation for Omarchy with full GPU support and TUI model management

I just added Local models support for OSTT. The goal is to create the most user friendly dictation app for Omarchy for folks that like to spend time in the terminal. Zero headache model management: download, activation, running in background. Full GPU support and very scriptable. Full story 👇

When switching to Linux from Mac, I missed having a nice easy-to-use speech-to-text tool.

The apps I found either didn’t work very well, didn’t support many providers, or were not really built for the Linux/terminal workflow I wanted. I also liked the idea of it being terminal-first, scriptable, and easy to run from a global hotkey popup. I couldn’t really find a good option, so I did the obvious thing and set out to build the tool myself. 😁

AI disclaimer: Yes, AI agents and humans (me) collaborated in the creation of this tool. Yes, AI generated code has been reviewed by human eyes. Yes, I do know Rust. No AI was harmed during the creation.

OSTT:

  • open source and MIT licensed
  • Linux-first, with setup docs for Hyprland/Omarchy, GNOME, KDE, and macOS too
  • works nicely as a small Omarchy/Hyprland popup bound to a global hotkey
  • bring your own API key instead of being locked into one transcription provider
  • can also run local Whisper-compatible models fully offline
  • GPU acceleration on macOS Metal, Linux CUDA, and Linux Vulkan builds
  • output to clipboard, file, or stdout
  • scriptable enough to fit into existing shell/CLI workflows

Here is how it works:

  • ostt launch opens a small terminal popup that can be bound to a global hotkey
  • pressing the hotkey once starts recording, pressing it again stops and transcribes
  • ostt process / -p can run the transcription through an AI prompt or a shell command to clean up transcription, translate it, format it, etc.

OSTT is provider agnostic and supports local models. You can also connect with an API key to the following providers: OpenAI, Deepgram, Groq, DeepInfra, AssemblyAI, Berget, ElevenLabs, and Mistral. You should be able to choose based on quality, latency, price, language support, data location, or whether you want everything to stay offline.

The scriptable part is also a big part of why I wanted this to exist on Linux. OSTT can be used as a small transcription engine inside other workflows. You can pipe output to another CLI, write transcriptions to a file, copy them to the clipboard, use it from a script, process meeting recordings, or connect it to AI agent workflows like OpenClaw, Hermes, OpenCode, Claude Code, Codex CLI, etc.

This is not trying to be some polished GUI dictation app startup. It doesn’t do streaming transcription or screen-aware text insertion. The niche is more: voice-to-text for those of us that enjoy nice looking CLI applications and TUIs.

Install:

curl -fsSL https://ostt.ai/install | bash

Docs: https://ostt.ai

GitHub: https://github.com/kristoferlund/ostt

Happy to hear any feedback.

u/stengods — 3 months ago
▲ 69 r/commandline+1 crossposts

I built an open source, terminal first, voice-to-text tool for Linux desktops because most dictation tools are Mac-first

When switching to Linux from Mac, I missed having a nice easy to use speech-to-text tool.

The apps I found either didn’t work very well, didn’t support many providers, or only supported local models, which doesn’t work well for me since I speak Swedish and those local models are mostly English. I also like the idea of it being terminal-first and scriptable. I couldn’t really find a good option, so I did the obvious thing and set out to build the tool myself. 😁

AI disclaimer: Yes, AI agents and humans (me) collaborated in the creation of this tool. Yes, AI generated code has been reviewed by human eyes. Yes, I do know how to code Rust. No AI was harmed during the creation.

OSTT:

  • open source and MIT licensed
  • works well on Linux desktops, with setup docs for Hyprland/Omarchy, GNOME, KDE, and macOS too
  • bring your own API key instead of being locked into one transcription provider
  • output to clipboard, file, or stdout
  • scriptable enough to fit into existing shell/CLI workflows

The recent release adds a few things that make the Linux workflow much better:

  • ostt launch opens a small terminal popup that can be bound to a global hotkey
  • pressing the hotkey once starts recording, pressing it again stops and transcribes
  • ostt process / -p can run the transcription through an AI prompt or a shell command
  • .deb, .rpm, AUR, Homebrew, and shell installer paths are documented

The provider-agnostic part is important I think. OSTT currently supports OpenAI, Deepgram, Groq, DeepInfra, AssemblyAI, Berget, and ElevenLabs. The point is not that one provider is the right one, but that you should be able to choose based on quality, latency, price, language support, or data location. (I also plan to add support for local models)

The scriptable part is also a big part of why I wanted this to exist on Linux. OSTT can be used as a small transcription engine inside other workflows. You can pipe output to another CLI, write transcriptions to a file, copy them to the clipboard, use it from a script, process meeting recordings, or connect it to AI agent workflows like OpenClaw, Hermes, OpenCode, Claude Code, Codex CLI, etc.

This is not trying to be some polished GUI dictation app startup. It doesnt do streaming transcription or screen-aware text insertion. The niche is more: voice-to-text that behaves like a CLI tool.

Install:

curl -fsSL https://ostt.ai/install | bash

Docs: https://ostt.ai

GitHub: https://github.com/kristoferlund/ostt

Happy to hear feedback, especially from folks using different Linux desktops/window managers. I have not been able to test installation on more than a few Linux flavours so far.

u/stengods — 3 months ago