Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ dev environment running and the checks your change needs to pass.
## Getting started

```bash
git clone https://github.com/hudsonbrendon/openwispr
cd openwispr
git clone https://github.com/hudsonbrendon/wisper.chat
cd wisper.chat
pnpm install
pnpm tauri dev # run the app with hot reload
```
Expand Down
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
</p>

<p align="center">
<strong><a href="https://hudsonbrendon.github.io/openwispr/">🌐 Website &amp; downloads</a></strong>
<strong><a href="https://wisper.chat/">🌐 Website &amp; downloads</a></strong>
</p>

<p align="center">
<a href="https://github.com/hudsonbrendon/openwispr/releases/latest">Download</a> ·
<a href="https://github.com/hudsonbrendon/wisper.chat/releases/latest">Download</a> ·
<a href="#-quick-start">Quick start</a> ·
<a href="#-build-from-source">Build from source</a> ·
<a href="#-troubleshooting">Troubleshooting</a> ·
Expand All @@ -24,23 +24,23 @@
</p>

<p align="center">
<a href="https://github.com/hudsonbrendon/openwispr/actions/workflows/ci.yml"><img src="https://github.com/hudsonbrendon/openwispr/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="https://codecov.io/gh/hudsonbrendon/openwispr"><img src="https://codecov.io/gh/hudsonbrendon/openwispr/branch/main/graph/badge.svg" alt="Coverage"></a>
<a href="https://github.com/hudsonbrendon/openwispr/releases/latest"><img src="https://img.shields.io/github/v/release/hudsonbrendon/openwispr?sort=semver" alt="Latest release"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/hudsonbrendon/openwispr" alt="License"></a>
<a href="https://github.com/hudsonbrendon/wisper.chat/actions/workflows/ci.yml"><img src="https://github.com/hudsonbrendon/wisper.chat/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="https://codecov.io/gh/hudsonbrendon/wisper.chat"><img src="https://codecov.io/gh/hudsonbrendon/wisper.chat/branch/main/graph/badge.svg" alt="Coverage"></a>
<a href="https://github.com/hudsonbrendon/wisper.chat/releases/latest"><img src="https://img.shields.io/github/v/release/hudsonbrendon/wisper.chat?sort=semver" alt="Latest release"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/hudsonbrendon/wisper.chat" alt="License"></a>
<img src="https://img.shields.io/badge/built%20with-Tauri-24C8DB?logo=tauri&logoColor=white" alt="Built with Tauri">
<img src="https://img.shields.io/badge/platforms-macOS%20%7C%20Windows%20%7C%20Linux-blue" alt="Platforms">
<a href="https://github.com/hudsonbrendon/openwispr/commits/main"><img src="https://img.shields.io/github/last-commit/hudsonbrendon/openwispr" alt="Last commit"></a>
<a href="https://github.com/hudsonbrendon/openwispr/issues"><img src="https://img.shields.io/github/issues/hudsonbrendon/openwispr" alt="Open issues"></a>
<a href="https://github.com/hudsonbrendon/openwispr/stargazers"><img src="https://img.shields.io/github/stars/hudsonbrendon/openwispr?style=flat" alt="Stars"></a>
<a href="https://github.com/hudsonbrendon/wisper.chat/commits/main"><img src="https://img.shields.io/github/last-commit/hudsonbrendon/wisper.chat" alt="Last commit"></a>
<a href="https://github.com/hudsonbrendon/wisper.chat/issues"><img src="https://img.shields.io/github/issues/hudsonbrendon/wisper.chat" alt="Open issues"></a>
<a href="https://github.com/hudsonbrendon/wisper.chat/stargazers"><img src="https://img.shields.io/github/stars/hudsonbrendon/wisper.chat?style=flat" alt="Stars"></a>
</p>

---

## Contents

- [What it is](#what-it-is)
- [Why Wisper](#why-openwispr)
- [Why Wisper](#why-wisper)
- [Features](#-features)
- [Quick start](#-quick-start)
- [Install](#-install)
Expand Down Expand Up @@ -113,7 +113,7 @@ until you press your hotkey.

## 🚀 Quick start

1. [Download](https://github.com/hudsonbrendon/openwispr/releases/latest) and
1. [Download](https://github.com/hudsonbrendon/wisper.chat/releases/latest) and
install for your OS.
2. Launch it and complete the short onboarding.
3. Grant **Microphone** (and on macOS, **Accessibility**) permission — see
Expand All @@ -125,7 +125,7 @@ until you press your hotkey.
## 📥 Install

Grab the installer for your platform from the
[latest release](https://github.com/hudsonbrendon/openwispr/releases/latest):
[latest release](https://github.com/hudsonbrendon/wisper.chat/releases/latest):

| Platform | Asset |
| --------------------------------- | -------------------- |
Expand Down Expand Up @@ -247,8 +247,8 @@ focus from the app you're typing into.
[Tauri system dependencies](https://tauri.app/start/prerequisites/) for your OS.

```bash
git clone https://github.com/hudsonbrendon/openwispr.git
cd openwispr
git clone https://github.com/hudsonbrendon/wisper.chat.git
cd wisper.chat
pnpm install
pnpm tauri dev # run in development
pnpm tauri build # produce a release bundle for your platform
Expand All @@ -273,7 +273,7 @@ cargo fmt --check
## 📁 Project layout

```
openwispr/
wisper/
├── src/ # React + TypeScript settings UI
│ ├── routes/ # Home, Settings, Insights, Dictionary, Snippets, Overlay…
│ └── lib/ # api bindings, i18n, theme, hotkey helpers
Expand Down Expand Up @@ -354,7 +354,7 @@ one-time step.

Contributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md), keep
changes focused, and run the checks above before opening a PR. Bug reports and
feature ideas are great as [issues](https://github.com/hudsonbrendon/openwispr/issues).
feature ideas are great as [issues](https://github.com/hudsonbrendon/wisper.chat/issues).

## 📄 License

Expand Down
2 changes: 1 addition & 1 deletion site/assets/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
(function () {
"use strict";

var REPO = "hudsonbrendon/openwispr";
var REPO = "hudsonbrendon/wisper.chat";
var FALLBACK_VERSION = "1.0.0";

var reduceMotion =
Expand Down
14 changes: 7 additions & 7 deletions site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
property="og:description"
content="Press a hotkey, speak, and your words appear anywhere. 100% local, free and open source."
/>
<meta property="og:image" content="https://hudsonbrendon.github.io/openwispr/assets/logo.png" />
<meta property="og:image" content="https://wisper.chat/assets/logo.png" />
<link rel="icon" href="assets/logo.png" type="image/png" />
<link rel="apple-touch-icon" href="assets/logo.png" />
<script>
Expand Down Expand Up @@ -45,7 +45,7 @@
<nav>
<a class="nav-link" href="#features" data-i18n="nav_features">Features</a>
<a class="nav-link" href="#how" data-i18n="nav_how">How it works</a>
<a class="nav-link" href="https://github.com/hudsonbrendon/openwispr" rel="noopener">GitHub</a>
<a class="nav-link" href="https://github.com/hudsonbrendon/wisper.chat" rel="noopener">GitHub</a>
<span class="ver-chip"></span>
<span class="tools">
<select class="lang-select" aria-label="Language"></select>
Expand All @@ -70,7 +70,7 @@ <h1 id="hero-title" class="reveal">
words land in any app — transcribed on-device with Whisper, never in the cloud.
</p>
<div class="hero-actions reveal">
<a class="btn" id="hero-dl" href="https://github.com/hudsonbrendon/openwispr/releases/latest"><span data-i18n="hero_cta">Download</span></a>
<a class="btn" id="hero-dl" href="https://github.com/hudsonbrendon/wisper.chat/releases/latest"><span data-i18n="hero_cta">Download</span></a>
<a class="btn ghost" href="#features"><span data-i18n="hero_cta2">See what's inside</span></a>
</div>
<div class="hero-meta reveal">
Expand Down Expand Up @@ -218,7 +218,7 @@ <h3 data-i18n="cta_title">Ready when you are.</h3>
Download Wisper for your platform and start dictating in minutes. Free, open
source, and entirely on-device.
</p>
<a class="btn" id="cta-dl" href="https://github.com/hudsonbrendon/openwispr/releases/latest"><span data-i18n="cta_button">Download</span></a>
<a class="btn" id="cta-dl" href="https://github.com/hudsonbrendon/wisper.chat/releases/latest"><span data-i18n="cta_button">Download</span></a>
<details class="all-dl">
<summary data-i18n="all_platforms">All platforms &amp; versions</summary>
<ul id="all-dl-list"></ul>
Expand All @@ -233,9 +233,9 @@ <h3 data-i18n="cta_title">Ready when you are.</h3>
><img class="brand-mark" src="assets/logo.png" alt="" width="64" height="64" />Wisper<span class="dot">.</span></a
>
<nav>
<a href="https://github.com/hudsonbrendon/openwispr" rel="noopener">GitHub</a>
<a href="https://github.com/hudsonbrendon/openwispr/releases/latest" rel="noopener" data-i18n="foot_releases">Releases</a>
<a href="https://github.com/hudsonbrendon/openwispr/blob/main/LICENSE" rel="noopener" data-i18n="foot_license">License</a>
<a href="https://github.com/hudsonbrendon/wisper.chat" rel="noopener">GitHub</a>
<a href="https://github.com/hudsonbrendon/wisper.chat/releases/latest" rel="noopener" data-i18n="foot_releases">Releases</a>
<a href="https://github.com/hudsonbrendon/wisper.chat/blob/main/LICENSE" rel="noopener" data-i18n="foot_license">License</a>
</nav>
<p data-i18n="foot_disclaimer">MIT-licensed · built with Tauri &amp; Whisper.</p>
</div>
Expand Down
58 changes: 29 additions & 29 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "openwispr"
name = "wisper"
version = "1.0.8"
description = "Open-source, local-first voice dictation desktop app"
authors = ["Hudson Brendon"]
Expand All @@ -11,7 +11,7 @@ edition = "2021"
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "openwispr_lib"
name = "wisper_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

[build-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ pub fn reset_microphone() {
#[cfg(target_os = "macos")]
{
let _ = std::process::Command::new("tccutil")
.args(["reset", "Microphone", "com.hudsonbrendon.openwispr"])
.args(["reset", "Microphone", "chat.wisper"])
.status();
std::thread::spawn(crate::audio::prompt_microphone_access);
}
Expand Down
4 changes: 2 additions & 2 deletions src-tauri/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +169,14 @@ mod tests {

#[test]
fn load_returns_default_when_missing() {
let dir = std::env::temp_dir().join("openwispr_test_missing_cfg");
let dir = std::env::temp_dir().join("wisper_test_missing_cfg");
let _ = std::fs::remove_dir_all(&dir);
assert_eq!(load(&dir), Config::default());
}

#[test]
fn save_then_load_round_trips() {
let dir = std::env::temp_dir().join("openwispr_test_save_load");
let dir = std::env::temp_dir().join("wisper_test_save_load");
let _ = std::fs::remove_dir_all(&dir);
let cfg = Config {
language: "pt".to_string(),
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/src/history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ mod tests {

/// A fresh, empty temp dir unique to this test name.
fn fresh_dir(name: &str) -> PathBuf {
let dir = std::env::temp_dir().join(format!("openwispr_history_test_{name}"));
let dir = std::env::temp_dir().join(format!("wisper_history_test_{name}"));
let _ = std::fs::remove_dir_all(&dir);
std::fs::create_dir_all(&dir).unwrap();
dir
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ fn heal_permissions_if_updated(data_dir: &std::path::Path) {
}
for service in ["Microphone", "Accessibility"] {
let _ = std::process::Command::new("tccutil")
.args(["reset", service, "com.hudsonbrendon.openwispr"])
.args(["reset", service, "chat.wisper"])
.status();
}
let _ = std::fs::create_dir_all(data_dir);
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

fn main() {
openwispr_lib::run()
wisper_lib::run()
}
2 changes: 1 addition & 1 deletion src-tauri/src/model_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ mod tests {
}

fn fresh_dir(name: &str) -> std::path::PathBuf {
let dir = std::env::temp_dir().join(format!("openwispr_model_test_{name}"));
let dir = std::env::temp_dir().join(format!("wisper_model_test_{name}"));
let _ = std::fs::remove_dir_all(&dir);
std::fs::create_dir_all(&dir).unwrap();
dir
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/src/text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ mod tests {

#[test]
fn replaces_case_insensitively() {
let out = apply_replacements("Call OPENWISPR now", &[r("openwispr", "Wisper")]);
let out = apply_replacements("Call WISPER now", &[r("wisper", "Wisper")]);
assert_eq!(out, "Call Wisper now");
}

Expand Down
4 changes: 2 additions & 2 deletions src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://schema.tauri.app/config/2",
"productName": "Wisper",
"version": "1.0.8",
"identifier": "com.hudsonbrendon.openwispr",
"identifier": "chat.wisper",
"build": {
"beforeDevCommand": "pnpm dev",
"devUrl": "http://localhost:1420",
Expand Down Expand Up @@ -61,7 +61,7 @@
"plugins": {
"updater": {
"endpoints": [
"https://github.com/hudsonbrendon/openwispr/releases/latest/download/latest.json"
"https://github.com/hudsonbrendon/wisper.chat/releases/latest/download/latest.json"
],
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDVBRThBMDU1QkRCQzYwNTIKUldSU1lMeTlWYURvV3BBWENCamg1ZTJ4SHYwcFpSYzJyM1d3Um44dUoyUEVwSUx3NXhFelFmWkcK"
}
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/tests/stt_integration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Requires the base.en model at /tmp/ggml-base.en.bin (downloaded in Task 5).

use openwispr_lib::stt::Transcriber;
use wisper_lib::stt::Transcriber;

#[test]
#[ignore]
Expand Down
2 changes: 1 addition & 1 deletion src/components/Sidebar.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ describe("Sidebar", () => {
const helpLink = screen.getByRole("link", { name: /^help$/i });
expect(helpLink).toHaveAttribute(
"href",
"https://github.com/hudsonbrendon/openwispr",
"https://github.com/hudsonbrendon/wisper.chat",
);
expect(helpLink).toHaveAttribute("target", "_blank");
});
Expand Down
2 changes: 1 addition & 1 deletion src/components/Sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ export default function Sidebar({
onClick={() => onNavigate("settings")}
/>
<a
href="https://github.com/hudsonbrendon/openwispr"
href="https://github.com/hudsonbrendon/wisper.chat"
target="_blank"
rel="noreferrer"
className="flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm text-stone-600 transition-colors hover:bg-stone-200/40 hover:text-stone-900 dark:text-stone-400 dark:hover:bg-stone-800 dark:hover:text-stone-100"
Expand Down
Loading