@mikimatsub/ttui 0.0.0-stage → 1.0.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/CROSSTERM-LICENSE +21 -0
- package/LICENSE +21 -0
- package/README.md +380 -2
- package/RUST-STDLIB-LICENSE.html +29357 -0
- package/THIRD_PARTY_NOTICES.txt +15983 -0
- package/bin/linux-x64/ttui +0 -0
- package/bin/ttui.mjs +31 -0
- package/bin/win32-x64/ttui.exe +0 -0
- package/checksums.json +4 -0
- package/package.json +13 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Timon
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 mikimatsub
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,381 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/banner.svg" alt="T-TUI: Tinder, in your terminal. Discover, chat, profiles and themes on Linux and Windows." width="100%">
|
|
4
|
+
|
|
5
|
+
<h3>A fast, keyboard-first Tinder client for Linux and Windows terminals.</h3>
|
|
6
|
+
|
|
7
|
+
[](https://github.com/mikimatsub/T-Tui/actions/workflows/ci.yml) [](https://github.com/mikimatsub/T-Tui/actions/workflows/security.yml) [](https://www.npmjs.com/package/@mikimatsub/ttui) [](https://github.com/mikimatsub/T-Tui/releases) [](https://github.com/mikimatsub/T-Tui/blob/main/LICENSE)  
|
|
8
|
+
|
|
9
|
+
[**Install**](#-install) · [**Features**](#-features) · [**Screenshots**](#-screenshots) · [**Keys**](#%EF%B8%8F-keyboard-shortcuts) · [**FAQ**](#-faq) · [**Releases**](https://github.com/mikimatsub/T-Tui/releases)
|
|
10
|
+
|
|
11
|
+
<img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/demo.gif" alt="Animated tour of the offline demo: inbox, profile, discovery, chat, theme picker, account editor and light theme, all with fictional profiles" width="860">
|
|
12
|
+
|
|
13
|
+
<sub>Recorded from <code>ttui --mock</code>. Every profile and photo is fictional.</sub>
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## ✨ Features
|
|
20
|
+
|
|
21
|
+
<table>
|
|
22
|
+
<tr>
|
|
23
|
+
<td width="50%" valign="top">
|
|
24
|
+
|
|
25
|
+
### 🔥 Discover
|
|
26
|
+
Swipe with `y` and `n`, page through photos with the arrows, read the full profile, and use Super Like or Boost with a confirmation first.
|
|
27
|
+
|
|
28
|
+
</td>
|
|
29
|
+
<td width="50%" valign="top">
|
|
30
|
+
|
|
31
|
+
### 💬 Chat
|
|
32
|
+
Inbox with search, filters, sorting, pins and read markers. Drafts save automatically, older history loads on demand, and failed sends can be restored for review.
|
|
33
|
+
|
|
34
|
+
</td>
|
|
35
|
+
</tr>
|
|
36
|
+
<tr>
|
|
37
|
+
<td valign="top">
|
|
38
|
+
|
|
39
|
+
### 🖼️ Real photos in the terminal
|
|
40
|
+
Sixel, Kitty and iTerm2 graphics with sharp resampling, including Windows Terminal 1.22 and later. Other terminals get a truecolor text fallback.
|
|
41
|
+
|
|
42
|
+
</td>
|
|
43
|
+
<td valign="top">
|
|
44
|
+
|
|
45
|
+
### 🎨 24 themes
|
|
46
|
+
T-TUI Dark and Light plus adaptations of Dracula, Catppuccin, Nord, Gruvbox, Tokyo Night, One, Solarized, Rose Pine, Monokai, Material and GitHub. Preview live with `F2`.
|
|
47
|
+
|
|
48
|
+
</td>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<td valign="top">
|
|
52
|
+
|
|
53
|
+
### ✍️ Your profile
|
|
54
|
+
Edit your bio, age range, distance, gender preference and discovery visibility. Only the fields you change are sent, and only after **Save**.
|
|
55
|
+
|
|
56
|
+
</td>
|
|
57
|
+
<td valign="top">
|
|
58
|
+
|
|
59
|
+
### 🔒 Private by design
|
|
60
|
+
The session stays on your machine: `0600` files on Linux, current-user DPAPI on Windows. Tokens are masked. No telemetry, no bypassing verification, no buying credits.
|
|
61
|
+
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
<tr>
|
|
65
|
+
<td valign="top">
|
|
66
|
+
|
|
67
|
+
### 🖱️ Keyboard and mouse
|
|
68
|
+
Every action has a key, and every bracketed button is clickable. The wheel scrolls whatever is under the pointer.
|
|
69
|
+
|
|
70
|
+
</td>
|
|
71
|
+
<td valign="top">
|
|
72
|
+
|
|
73
|
+
### 🧪 Offline demo
|
|
74
|
+
`ttui --mock` opens a full demo with fictional profiles. Every Like becomes a match so you can try the whole flow without an account.
|
|
75
|
+
|
|
76
|
+
</td>
|
|
77
|
+
</tr>
|
|
78
|
+
</table>
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 📦 Install
|
|
83
|
+
|
|
84
|
+
### npm (Linux and Windows, x86-64)
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
npm install --global @mikimatsub/ttui
|
|
88
|
+
ttui --mock
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The package bundles both native binaries. It has no dependencies, no install scripts and no runtime download. Requires Node >=24.21.0.
|
|
92
|
+
|
|
93
|
+
### Standalone binary (no Node or Rust needed)
|
|
94
|
+
|
|
95
|
+
1. Download the archive for your system and its `.sha256` file from [**GitHub Releases**](https://github.com/mikimatsub/T-Tui/releases).
|
|
96
|
+
2. Compare the SHA-256, then extract. Linux archives contain `ttui`; Windows archives contain `ttui.exe`.
|
|
97
|
+
3. Run it directly or put its folder on your `PATH`.
|
|
98
|
+
|
|
99
|
+
<details>
|
|
100
|
+
<summary><b>Build from source</b></summary>
|
|
101
|
+
|
|
102
|
+
To build and install from this repository on Linux:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
./scripts/install.sh
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
On Windows, run `./scripts/install.ps1` in PowerShell with Rust and the MSVC C++ build tools installed. It installs to `%LOCALAPPDATA%\Programs\T-TUI`. Add that directory to your user PATH or launch `ttui.exe` directly. The script does not change PATH or require administrator privileges.
|
|
109
|
+
|
|
110
|
+
The installer builds a release binary and copies it to `~/.local/bin/ttui`. Set `TTUI_INSTALL_DIR` to use another directory. That directory must be on your `PATH`. The install needs no administrator privileges and no system package. Your saved account and settings stay in the config directory, so the installed command keeps working if you move or remove this repository. Rerun the installer after source updates.
|
|
111
|
+
|
|
112
|
+
</details>
|
|
113
|
+
|
|
114
|
+
### Requirements
|
|
115
|
+
|
|
116
|
+
| | |
|
|
117
|
+
|---|---|
|
|
118
|
+
| **OS** | Linux x86-64 or Windows x86-64 |
|
|
119
|
+
| **Terminal size** | Works from 50 × 16; 100 × 30 or larger shows the full split view |
|
|
120
|
+
| **Sharp photos** | A terminal with native graphics: **Windows Terminal 1.22+**, Foot (Sixel), Kitty or iTerm2. Others use a text fallback |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 🚀 Quick start
|
|
125
|
+
|
|
126
|
+
```sh
|
|
127
|
+
ttui --mock # try the offline demo first
|
|
128
|
+
ttui # open your account
|
|
129
|
+
ttui --check # read-only health check of a saved session
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Press `F1` for help and `Ctrl-Q` to quit. A healthy `--check` ends with `Read-only checks complete; no messages or swipes sent.`
|
|
133
|
+
|
|
134
|
+
<details>
|
|
135
|
+
<summary><b>All commands</b></summary>
|
|
136
|
+
|
|
137
|
+
| Command | What it does |
|
|
138
|
+
|---|---|
|
|
139
|
+
| `ttui` | Open the saved account. This is the default. |
|
|
140
|
+
| `ttui --mock`, `ttui --demo` | Offline demo. Settings and drafts stay in `demo.json`. |
|
|
141
|
+
| `ttui --live` | Use the real account. Same as running `ttui` with no flag. |
|
|
142
|
+
| `ttui --login`, `ttui --browser-login` | Experimental Chromium extraction; ambiguous profiles require explicit selection. |
|
|
143
|
+
| `ttui --check` | Read-only check of the saved session. |
|
|
144
|
+
| `ttui --import-session` | Read one copied cURL request from stdin and save the session. |
|
|
145
|
+
| `ttui --version`, `ttui -V` | Print the installed version. |
|
|
146
|
+
| `ttui --doctor` | Local diagnostics without reading account data or contacting Tinder. |
|
|
147
|
+
| `ttui --clear-cache` | Remove managed cached photos; run with T-TUI closed. |
|
|
148
|
+
| `ttui --help`, `ttui -h` | Print usage and the config path. |
|
|
149
|
+
|
|
150
|
+
</details>
|
|
151
|
+
|
|
152
|
+
### Connect your account
|
|
153
|
+
|
|
154
|
+
Sign in on [Tinder Web](https://tinder.com), then press **Ctrl-B** on the connection screen for browser login (experimental), or paste a copied request into the **Auth token** field.
|
|
155
|
+
|
|
156
|
+
<details>
|
|
157
|
+
<summary><b>Step-by-step connection guide</b></summary>
|
|
158
|
+
|
|
159
|
+
### Browser login
|
|
160
|
+
|
|
161
|
+
This is experimental. Chromium storage layouts may change. Use manual session import if it fails. When multiple Tinder profiles are present, set `TTUI_BROWSER_PROFILE` to the intended absolute Chromium profile directory. T-TUI will not silently choose the newest account. Sign in on Tinder Web first, then try:
|
|
162
|
+
|
|
163
|
+
```sh
|
|
164
|
+
ttui --login
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Or press **Ctrl-B** or click **[Browser Login]** on the connection screen. T-TUI opens Tinder, attempts extraction from one selected profile, and verifies the credentials before saving. Browser login is disabled in offline demo mode.
|
|
168
|
+
|
|
169
|
+
### Manual connection
|
|
170
|
+
|
|
171
|
+
1. Sign in to [Tinder Web](https://tinder.com).
|
|
172
|
+
2. Open developer tools (`F12`), select **Network**, and reload Tinder.
|
|
173
|
+
3. Choose a request to **api.gotinder.com**. Right-click it, then **Copy → Copy as cURL (bash)**.
|
|
174
|
+
4. Paste into the **Auth token** field with your terminal paste shortcut, usually `Ctrl-Shift-V`.
|
|
175
|
+
5. Press **Enter** to connect.
|
|
176
|
+
|
|
177
|
+
You can also paste `x-auth-token` and `persistent-device-id` from the request headers into their own fields. A refresh token in the third field renews the session. A refresh token and device ID are enough when the auth token is already expired.
|
|
178
|
+
|
|
179
|
+
Treat the copied request as a password. Paste it only into your own T-TUI. An expired session with no refresh token returns you to the connection screen.
|
|
180
|
+
|
|
181
|
+
On Linux you can import the clipboard without printing the request:
|
|
182
|
+
|
|
183
|
+
```sh
|
|
184
|
+
wl-paste --no-newline | ttui --import-session
|
|
185
|
+
ttui --check
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
</details>
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 📸 Screenshots
|
|
193
|
+
|
|
194
|
+
<table>
|
|
195
|
+
<tr>
|
|
196
|
+
<td><img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/inbox.png" alt="Inbox with conversation list, message previews and a profile preview" width="100%"></td>
|
|
197
|
+
<td><img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/discover.png" alt="Discovery card with photo carousel and profile prompts" width="100%"></td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr>
|
|
200
|
+
<td align="center"><sub>Inbox</sub></td>
|
|
201
|
+
<td align="center"><sub>Discover</sub></td>
|
|
202
|
+
</tr>
|
|
203
|
+
<tr>
|
|
204
|
+
<td><img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/chat.png" alt="Chat conversation with sent and received messages" width="100%"></td>
|
|
205
|
+
<td><img src="https://raw.githubusercontent.com/mikimatsub/T-Tui/main/docs/assets/themes-catppuccin.png" alt="Theme picker previewing Catppuccin" width="100%"></td>
|
|
206
|
+
</tr>
|
|
207
|
+
<tr>
|
|
208
|
+
<td align="center"><sub>Chat</sub></td>
|
|
209
|
+
<td align="center"><sub>Themes</sub></td>
|
|
210
|
+
</tr>
|
|
211
|
+
</table>
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## ⌨️ Keyboard shortcuts
|
|
216
|
+
|
|
217
|
+
| Where | Keys |
|
|
218
|
+
|---|---|
|
|
219
|
+
| Everywhere | `F1` help · `F2` themes · `Ctrl-O` account · `Ctrl-Q` quit |
|
|
220
|
+
| Inbox | `↑↓`/`j k` select · `Enter` chat · `→` profile · `/` search · `d` discover |
|
|
221
|
+
| Discover | `y` like · `n` pass · `←→` photos · `u` Super Like · `b` Boost |
|
|
222
|
+
| Chat (Linux) | `Enter` send · `Alt-Enter` newline · `Esc` save draft |
|
|
223
|
+
| Chat (Windows) | `Ctrl-S` send · `Enter` newline |
|
|
224
|
+
|
|
225
|
+
<details>
|
|
226
|
+
<summary><b>Full key reference</b></summary>
|
|
227
|
+
|
|
228
|
+
| Where | Keys |
|
|
229
|
+
|---|---|
|
|
230
|
+
| Everywhere | `F1` help, `F2` themes, `Ctrl-O` account, `Ctrl-Q` / `Ctrl-C` quit |
|
|
231
|
+
| Inbox | `↑↓` or `j/k` select, `Enter` chat, `→` profile, `/` search, `Esc` clear search |
|
|
232
|
+
| Inbox tools | `f` filter, `o` sort, `p` pin or unpin, `a` mark all read on this device |
|
|
233
|
+
| Inbox | `d` discover, `s` settings, `r` refresh, `Home` / `End` first or last |
|
|
234
|
+
| Discovery | `y` like, `n` pass, `←→` photos, `↑↓` profile details, `m` inbox, `r` refresh |
|
|
235
|
+
| Discovery extras | `u` Super Like, `b` Boost (both ask for confirmation), `w` Tinder Web |
|
|
236
|
+
| Chat on Linux | Type normally, `Enter` send, `Alt-Enter` newline, `Esc` save the draft and return |
|
|
237
|
+
| Chat on Windows | `Ctrl-S` or **Send** sends; `Enter` inserts a newline. This keeps multiline terminal paste in the draft. |
|
|
238
|
+
| Chat editing | `←→`, `Home` / `End`, `Backspace` / `Delete`, `Ctrl-U` clear |
|
|
239
|
+
| Chat tools | `Ctrl-P` profile, `Ctrl-R` restore a failed message; settings: `Ctrl-S` on Linux or `Esc` then `s` on Windows |
|
|
240
|
+
| Chat safety | `Ctrl-X` unmatch (confirmation required). **Report help** opens Tinder's reporting instructions |
|
|
241
|
+
| Chat history | `↑↓` scroll, `PgUp` fetch older history, `PgDn` scroll toward the latest |
|
|
242
|
+
| Profile | `←→` photos, `↑↓` scroll, `Enter` chat, `v` external viewer, `Esc` back |
|
|
243
|
+
| Settings | `↑↓` select, `Enter` change, `Esc` return |
|
|
244
|
+
| Account | `Tab` / `Shift-Tab` choose a field, type to edit, `Ctrl-U` clear, `Ctrl-S` save, `Esc` inbox |
|
|
245
|
+
| Themes | `↑↓` or the mouse wheel to preview, `Enter` apply, `Esc` cancel |
|
|
246
|
+
|
|
247
|
+
Like and Pass run only from their buttons or from `y` and `n`. The arrow keys change photos. A card stays put when the server rejects the swipe. Further keypresses are ignored while a swipe is in flight.
|
|
248
|
+
|
|
249
|
+
Drafts save after 750 ms without changes, when you leave a conversation, or when you quit. Newlines in a bracketed paste stay in the draft and do not send. A message is first pending, then unconfirmed. If a send times out, delivery is uncertain: read the conversation before you send it again. Restoring a failed message puts the text back for review and does not send it.
|
|
250
|
+
|
|
251
|
+
</details>
|
|
252
|
+
|
|
253
|
+
<details>
|
|
254
|
+
<summary><b>Mouse, photos, themes and inbox tools</b></summary>
|
|
255
|
+
|
|
256
|
+
Click the top tabs, a conversation row, or any bracketed action. Click either half of a profile photo to move backward or forward. The wheel scrolls the pane under the pointer: inbox, history, profile details, settings, account fields, help, or themes. Click or drag in the composer to place the cursor. Unicode characters stay intact. A dialog captures clicks so they cannot reach the screen under it. Mouse capture is restored on exit. Hold **Shift** for the terminal's own text selection where the terminal supports it.
|
|
257
|
+
|
|
258
|
+
On Unix, T-TUI detects Sixel, Kitty, or iTerm2 graphics and the terminal's pixel size at startup. Photos keep their aspect ratio. Avatars fill their tiles. Resizing runs in background workers. **Settings → In-terminal photos** shows the detected renderer. The three **Text** size settings affect only the text fallback. Native photos fit the space they are given. Rendering uses [ratatui-image](https://github.com/ratatui/ratatui-image).
|
|
259
|
+
|
|
260
|
+
Open **Themes** or press **F2**. **Apply** saves the palette. **Cancel** restores the previous one. A saved dark or light choice from an older config still loads.
|
|
261
|
+
|
|
262
|
+
Included palettes: T-TUI Dark (the default), T-TUI Light, Dracula, Catppuccin Mocha, Macchiato, Frappe, and Latte, Nord, Gruvbox Dark and Light, Tokyo Night, Storm, and Day, One Dark and Light, Solarized Dark and Light, Rose Pine, Moon, and Dawn, Monokai, Material Ocean, and GitHub Dark and Light. These are T-TUI adaptations of the editor themes.
|
|
263
|
+
|
|
264
|
+
Inbox tools are All, Unread, New, Drafts, and Pinned filters, Recent, Name, and Newest sorting, search across names and message previews, persistent pins, and local read markers. Pinned conversations sort first. Filters and search apply only to loaded conversations. **More** or uppercase **L** expands the session limit by 100, up to 1,000. It refetches the expanded inbox through existing server pagination. Pins and read markers stay on this device.
|
|
265
|
+
|
|
266
|
+
</details>
|
|
267
|
+
|
|
268
|
+
<details>
|
|
269
|
+
<summary><b>⚙️ Configuration and data locations</b></summary>
|
|
270
|
+
|
|
271
|
+
| Name | Default | Notes |
|
|
272
|
+
|---|---|---|
|
|
273
|
+
| `TTUI_INSTALL_DIR` | `~/.local/bin` | Destination used by `scripts/install.sh`. |
|
|
274
|
+
| `TTUI_DATA_DIR` | Platform directories | Optional isolated root with `config` and `cache` subdirectories. |
|
|
275
|
+
| Windows account file | `%APPDATA%\ttui\config.json` | Credentials use current-user DPAPI; drafts and settings remain readable JSON. |
|
|
276
|
+
| Windows photo cache | `%LOCALAPPDATA%\ttui\photos` | Managed cache files; `--clear-cache` removes them. |
|
|
277
|
+
| Account file | `$XDG_CONFIG_HOME/ttui/config.json` | Usually `~/.config/ttui/config.json`. Mode `0600`. Holds the session, drafts, pins, read markers, and settings. |
|
|
278
|
+
| Demo file | `demo.json` in that same directory | Separate settings and drafts for `--mock`. |
|
|
279
|
+
| Photo cache | `$XDG_CACHE_HOME/ttui/photos` | Usually `~/.cache/ttui/photos`. |
|
|
280
|
+
| Inbox size | 60 | Initial load 20–100; **More** increases it up to 1,000 for this session. |
|
|
281
|
+
| Poll interval | 5000 ms | Backs off after failures. |
|
|
282
|
+
| In-terminal photos | On | Turn off to force the text fallback. |
|
|
283
|
+
| Text photo size | 46 × 26 cells, avatars 10 | Used only by the text fallback. |
|
|
284
|
+
| External viewer | Off | `v` uses the Windows shell or Linux `xdg-open` after you enable it. |
|
|
285
|
+
| Theme | T-TUI Dark | Saved when you apply a palette. |
|
|
286
|
+
|
|
287
|
+
Account edits send only the fields you changed, and only after **Save**. Bio (500 characters), age range, distance in miles, gender preference, discovery visibility, and gender display are supported. **Discard** restores the loaded values. Unsaved edits survive navigation in memory. They are dropped when you quit. **Account → Preview** shows your own profile. **Account → Tinder Web** opens the website for workflows the terminal does not cover.
|
|
288
|
+
|
|
289
|
+
Super Like and Boost ask for confirmation and require credits the account already has. A rejected action leaves the current card in place. An ambiguous response is reported for you to review.
|
|
290
|
+
|
|
291
|
+
Unmatch asks for confirmation. Local conversation state is removed after the server acknowledges it. **Report help** opens [Tinder's reporting instructions](https://www.help.tinder.com/hc/en-us/articles/115003822043-Reporting-profiles-and-content). It does not file a report.
|
|
292
|
+
|
|
293
|
+
Sign out, after confirmation, removes the saved credentials, drafts, and read markers from this machine. Your Tinder account and the conversations on the server stay. The photo cache stays on disk, capped at 256 MiB and seven days; close T-TUI and use `--clear-cache` to remove it.
|
|
294
|
+
|
|
295
|
+
</details>
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## ❓ FAQ
|
|
300
|
+
|
|
301
|
+
<details>
|
|
302
|
+
<summary><b>Photos look blocky.</b></summary>
|
|
303
|
+
|
|
304
|
+
Your terminal has no native graphics, so T-TUI uses the text fallback. Use Windows Terminal 1.22 or later, Foot, Kitty or iTerm2. **Settings → In-terminal photos** shows which renderer was detected.
|
|
305
|
+
|
|
306
|
+
</details>
|
|
307
|
+
|
|
308
|
+
<details>
|
|
309
|
+
<summary><b>I'm sent back to the connection screen.</b></summary>
|
|
310
|
+
|
|
311
|
+
The session expired and there was no refresh token. Copy a fresh request from Tinder Web and paste it again, then run `ttui --check`.
|
|
312
|
+
|
|
313
|
+
</details>
|
|
314
|
+
|
|
315
|
+
<details>
|
|
316
|
+
<summary><b>Browser login can't find my account.</b></summary>
|
|
317
|
+
|
|
318
|
+
Browser login is experimental. If several Chromium profiles exist, set `TTUI_BROWSER_PROFILE` to the right profile directory, or use the manual connection steps.
|
|
319
|
+
|
|
320
|
+
</details>
|
|
321
|
+
|
|
322
|
+
<details>
|
|
323
|
+
<summary><b>Does it work on macOS or ARM?</b></summary>
|
|
324
|
+
|
|
325
|
+
Not yet. Linux x86-64 and Windows x86-64 are the supported targets.
|
|
326
|
+
|
|
327
|
+
</details>
|
|
328
|
+
|
|
329
|
+
<details>
|
|
330
|
+
<summary><b>Something is off. How do I check?</b></summary>
|
|
331
|
+
|
|
332
|
+
`ttui --doctor` prints local diagnostics without reading account data or contacting Tinder. Please [open an issue](https://github.com/mikimatsub/T-Tui/issues/new/choose) without tokens, copied requests, photos or message content.
|
|
333
|
+
|
|
334
|
+
</details>
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## 🛠️ Development
|
|
339
|
+
|
|
340
|
+
<details>
|
|
341
|
+
<summary><b>Build and verify</b></summary>
|
|
342
|
+
|
|
343
|
+
Day-to-day use stops at [Quick start](#quick-start). This section is for changing the source.
|
|
344
|
+
|
|
345
|
+
```sh
|
|
346
|
+
cargo build --release --locked
|
|
347
|
+
cargo test --locked
|
|
348
|
+
cargo clippy --locked --all-targets -- -D warnings
|
|
349
|
+
cargo fmt --package ttui -- --check
|
|
350
|
+
python -m pip install --require-hashes -r scripts/test-requirements.txt
|
|
351
|
+
python scripts/pty_e2e.py --binary target/release/ttui
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
Unit and HTTP contract tests cover session recovery, stale responses, message acknowledgement, opaque pagination cursors, swipes, config file permissions, Unicode input, and resizing. They use isolated local HTTP servers and a fictional offline backend. The PTY suite drives the real binary with temporary settings and cache, checks the terminal cells, and writes screenshots under `/tmp/ttui-qa`. It emulates Sixel replies to check pixel size, frame caching, carousels, overlays, resizing, and the photo toggle. It does not connect to a real account or change one.
|
|
355
|
+
|
|
356
|
+
After editing source, run `./scripts/install.sh` to refresh the installed command. For the project launcher only, `cargo build --release --locked` is enough. `./ttui` uses the release binary when it is already built.
|
|
357
|
+
|
|
358
|
+
</details>
|
|
359
|
+
|
|
360
|
+
See [`CONTRIBUTING.md`](https://github.com/mikimatsub/T-Tui/blob/main/CONTRIBUTING.md) before opening a pull request.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 📚 Documentation
|
|
365
|
+
|
|
366
|
+
- [`FEATURES.md`](https://github.com/mikimatsub/T-Tui/blob/main/FEATURES.md): supported workflows and what stays on Tinder Web
|
|
367
|
+
- [`SECURITY.md`](https://github.com/mikimatsub/T-Tui/blob/main/SECURITY.md): local storage and private vulnerability reporting
|
|
368
|
+
- [`CONTRIBUTING.md`](https://github.com/mikimatsub/T-Tui/blob/main/CONTRIBUTING.md): toolchain, checks and commit conventions
|
|
369
|
+
- [`CODE_OF_CONDUCT.md`](https://github.com/mikimatsub/T-Tui/blob/main/CODE_OF_CONDUCT.md): community expectations
|
|
370
|
+
- [`CHANGELOG.md`](https://github.com/mikimatsub/T-Tui/blob/main/CHANGELOG.md): version history
|
|
371
|
+
- [`docs/RELEASING.md`](https://github.com/mikimatsub/T-Tui/blob/main/docs/RELEASING.md) and [`docs/VERIFICATION.md`](https://github.com/mikimatsub/T-Tui/blob/main/docs/VERIFICATION.md): release gates and verification record
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## ⚠️ Disclaimer
|
|
376
|
+
|
|
377
|
+
T-TUI is an **unofficial** client. It is not affiliated with, endorsed by, or sponsored by Tinder or Match Group, LLC. Tinder is a trademark of Match Group, LLC. Tinder can change its private API at any time or ask you to finish verification on the website. Use it at your own risk and within Tinder's terms.
|
|
378
|
+
|
|
379
|
+
## License
|
|
380
|
+
|
|
381
|
+
MIT: see [LICENSE](https://github.com/mikimatsub/T-Tui/blob/main/LICENSE). Provided "as is" without warranty.
|