@superdots/airtype 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -0
- package/bin/airtype.js +2 -0
- package/package.json +40 -0
- package/src/app.tsx +652 -0
- package/src/audio.ts +110 -0
- package/src/config.ts +91 -0
- package/src/keys.ts +54 -0
- package/src/llm.ts +63 -0
- package/src/onboarding.ts +273 -0
- package/src/paste.ts +85 -0
- package/src/report.ts +86 -0
- package/src/stt.ts +31 -0
- package/src/test-blocks.ts +190 -0
- package/src/test-raw-pcm.ts +31 -0
- package/src/test-volume.ts +16 -0
- package/src/test-volume2.ts +17 -0
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Airtype
|
|
2
|
+
|
|
3
|
+
> Speak and it types. Hands-free voice transcription for macOS.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
█████╗ ██╗██████╗ ████████╗██╗ ██╗██████╗ ███████╗
|
|
7
|
+
██╔══██╗██║██╔══██╗╚══██╔══╝╚██╗ ██╔╝██╔══██╗██╔════╝
|
|
8
|
+
███████║██║██████╔╝ ██║ ╚████╔╝ ██████╔╝█████╗
|
|
9
|
+
██╔══██║██║██╔══██╗ ██║ ╚██╔╝ ██╔═══╝ ██╔══╝
|
|
10
|
+
██║ ██║██║██║ ██║ ██║ ██║ ██║ ███████╗
|
|
11
|
+
╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Press a shortcut. Speak. It transcribes, polishes, and pastes — into any app.
|
|
15
|
+
|
|
16
|
+
## Features
|
|
17
|
+
|
|
18
|
+
- **Toggle recording** — press shortcut to start, press again to stop
|
|
19
|
+
- **Smart formatting** — hesitation clearing, auto numbered lists, email format
|
|
20
|
+
- **Global shortcut** — works from any app (Terminal, VS Code, Chrome, etc.)
|
|
21
|
+
- **Live speech bar** — see your mic level in real-time
|
|
22
|
+
- **Auto paste** — result goes straight to your cursor
|
|
23
|
+
- **Fast** — under 2 seconds total
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
brew install sox switchaudio-osx
|
|
29
|
+
curl -fsSL https://bun.sh/install | bash
|
|
30
|
+
|
|
31
|
+
git clone https://github.com/myungseung/airtype.git
|
|
32
|
+
cd airtype/ts
|
|
33
|
+
bun install
|
|
34
|
+
bun link
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
airtype # run (first time → onboarding)
|
|
41
|
+
airtype --setup # redo settings
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
1. Press your shortcut → recording starts (sound plays)
|
|
45
|
+
2. Speak naturally
|
|
46
|
+
3. Press again → processes and pastes into active app
|
|
47
|
+
|
|
48
|
+
## Smart Formatting
|
|
49
|
+
|
|
50
|
+
| You say | Airtype types |
|
|
51
|
+
|---------|--------------|
|
|
52
|
+
| "Um so I think... no wait... we need to fix the bug" | We need to fix the bug. |
|
|
53
|
+
| "First update docs second fix bug third deploy" | 1. Update docs. 2. Fix bug. 3. Deploy. |
|
|
54
|
+
| "Dear Michael new line follow up period Regards Chris" | Dear Michael,\nFollow up.\nRegards, Chris |
|
|
55
|
+
|
|
56
|
+
## API Keys
|
|
57
|
+
|
|
58
|
+
`.env` file in project root:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
GROQ_API_KEY=gsk_... # console.groq.com (free)
|
|
62
|
+
OPENROUTER_API_KEY=sk-or-... # openrouter.ai
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Requirements
|
|
66
|
+
|
|
67
|
+
macOS · Bun · sox · SwitchAudioSource · Accessibility permission
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
MIT
|
package/bin/airtype.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@superdots/airtype",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Speak and it types. Hands-free voice transcription CLI for macOS.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"airtype": "./bin/airtype.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "bun run src/app.tsx",
|
|
11
|
+
"setup": "bun run src/app.tsx --setup",
|
|
12
|
+
"test": "bun run src/test-blocks.ts",
|
|
13
|
+
"postinstall": "echo '\\n Run: airtype\\n'"
|
|
14
|
+
},
|
|
15
|
+
"keywords": ["voice", "transcription", "dictation", "stt", "cli", "macos", "hands-free", "speech-to-text"],
|
|
16
|
+
"author": "myungseung",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/myungseung/airtype.git"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://myungseung.github.io/airtype/",
|
|
23
|
+
"engines": {
|
|
24
|
+
"bun": ">=1.0.0"
|
|
25
|
+
},
|
|
26
|
+
"os": ["darwin"],
|
|
27
|
+
"files": [
|
|
28
|
+
"bin/",
|
|
29
|
+
"src/*.ts",
|
|
30
|
+
"src/*.tsx",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"ink": "^6.8.0",
|
|
35
|
+
"ink-select-input": "^6.2.0",
|
|
36
|
+
"ink-spinner": "^5.0.0",
|
|
37
|
+
"node-global-key-listener": "^0.3.0",
|
|
38
|
+
"react": "^19.2.4"
|
|
39
|
+
}
|
|
40
|
+
}
|