You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add OpenAI Codex OAuth login and refresh UI polish
Implement the full OpenAI Codex OAuth flow with callback handling, model selection, and token refresh. Rename pi-tui theme adapters to pythinker-theme, share OAuth HTML pages across CLI and web, and align thinking spinner labels and README branding across TUI and web.
Copy file name to clipboardExpand all lines: .agents/skills/write-tui/SKILL.md
+3-4Lines changed: 3 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ For any list dialog, selector, input box, or status/toggle list, the interaction
25
25
-`src/tui/commands/` — slash-command declaration, parsing, ordering, and dynamic skill-command generation. Parsing and types only; execution is dispatched from `PythinkerTUI`'s slash-command handler section, and complex execution sinks into `utils` or focused components.
-`src/tui/reverse-rpc/` — adapts SDK approval/question callbacks into UI panel data and the user's choice back into an SDK response.
28
-
-`src/tui/theme/` — themes, color tokens, style helpers, pi-tui markdown theme, terminal-background detection. The single source of truth for color.
28
+
-`src/tui/theme/` — themes, color tokens, Pythinker markdown/editor theme adapters, terminal-background detection. The single source of truth for color.
29
29
-`src/tui/utils/` — TUI-only utilities (need `TUIState` or a component). App-wide, UI-independent helpers go in `src/utils/`.
30
30
31
31
When a controller or `PythinkerTUI` section keeps growing, split pure functions, state projections, and presentation components into the matching directory rather than expanding the file.
@@ -62,10 +62,9 @@ The feature type decides the landing spot:
62
62
Themes are managed centrally under `src/tui/theme/`:
-`styles.ts` — common chalk helpers built on top of `ColorPalette`.
66
-
-`pi-tui-theme.ts` — the markdown/pi-tui theme config.
65
+
-`pythinker-theme.ts` — Pythinker markdown and editor theme adapters (`createPythinkerMarkdownTheme`, `createPythinkerEditorTheme`).
66
+
-`theme.ts` — the global `Theme` singleton and `currentTheme` accessor.
67
67
-`terminal-background.ts` — terminal background detection used by auto resolution.
68
-
-`bundle.ts` — packs `colors`, `styles`, `markdownTheme` into a `PythinkerTUIThemeBundle`.
69
68
-`index.ts` / `detect.ts` — theme type and auto/dark/light resolution.
70
69
71
70
> **Keep the color-token set in sync.**`ColorPalette` in `colors.ts` is the source of truth for color tokens. When you add, rename, or remove one, update its mirrors in the same change: the custom-theme JSON schema (`apps/pythinker-code/src/tui/theme/theme-schema.json`), the token tables in the custom-theme docs (`docs/en/customization/themes.md`), and the token table in the `custom-theme` built-in skill (`packages/agent-core/src/skill/builtin/custom-theme.md`).
<imgsrc="docs/media/readme-hero.svg"alt="Pythinker Code — next-gen AI coding agents in your terminal"width="100%" />
11
+
</a>
12
+
13
+
<br />
14
+
15
+
# Pythinker Code
6
16
7
17
**The starting point for next-generation AI coding agents.**
8
18
9
-
An intelligent terminal agent that reads your codebase, edits files, runs shell commands, searches the web, and iterates until the job is done — powered by Pythinker models and compatible with other LLM providers.
19
+
An intelligent terminal agent that reads your codebase, edits files, runs shell commands, searches the web, and iterates until the job is done — powered by [Pythinker models](https://www.pythinker.com) and compatible with other LLM providers.

40
+

29
41
30
42
## Table of Contents
31
43
@@ -47,15 +59,27 @@ An intelligent terminal agent that reads your codebase, edits files, runs shell
47
59
48
60
## Overview
49
61
50
-
**PyThinker** (Pythinker Code CLI) is an AI coding agent built for real engineering work in the terminal. Give it a task — refactor a module, trace a bug, scaffold a feature — and it plans, executes tools, observes results, and keeps going until you are satisfied.
62
+
**Pythinker Code** is an AI coding agent built for real engineering work in the terminal. Give it a task — refactor a module, trace a bug, scaffold a feature — and it plans, executes tools, observes results, and keeps going until you are satisfied.
51
63
52
64
|||
53
65
|---|---|
54
66
|**Runs locally**| Your repo stays on your machine; the agent acts through a fast, purpose-built TUI |
55
67
|**Tool-native**| File I/O, shell, grep, web fetch, MCP servers, subagents, and lifecycle hooks |
56
-
|**Provider-flexible**| Works out of the box with Pythinker models; configurable for other compatible APIs |
68
+
|**Provider-flexible**| Works out of the box with [Pythinker models](https://www.pythinker.com); configurable for other compatible APIs |
57
69
|**Editor-ready**| Drive sessions from Zed, JetBrains, or any [ACP](https://agentclientprotocol.com/) client |
> **Windows note:** Install [Git for Windows](https://gitforwindows.org/) before first launch. PyThinker uses the bundled Git Bash as its shell. For a custom Git Bash location, set `PYTHINKER_SHELL_PATH` to the absolute path of `bash.exe`.
200
+
> **Windows note:** Install [Git for Windows](https://gitforwindows.org/) before first launch. Pythinker Code uses the bundled Git Bash as its shell. For a custom Git Bash location, set `PYTHINKER_SHELL_PATH` to the absolute path of `bash.exe`.
177
201
178
202
Open a **new shell** and verify:
179
203
@@ -202,7 +226,7 @@ cd your-project
202
226
pythinker
203
227
```
204
228
205
-
On first launch, run `/login` and choose **Pythinker Code OAuth** or a**Pythoughts Open Platform API key**. Then try your first task:
229
+
On first launch, run `/login` and choose **[Pythinker Code OAuth](https://www.pythinker.com/code)** or an**[API key from the console](https://www.pythinker.com/code/console)**. Then try your first task:
206
230
207
231
```
208
232
Take a look at this project and explain its main directories.
@@ -245,14 +269,14 @@ Use the SDK or server mode for programmatic control. See the [command reference]
245
269
246
270
## 🖥 Editor Integration (ACP)
247
271
248
-
PyThinker speaks the [Agent Client Protocol](https://agentclientprotocol.com/). Log in once via the CLI, then point your editor at `pythinker acp`.
272
+
Pythinker Code speaks the [Agent Client Protocol](https://agentclientprotocol.com/). Log in once via the CLI, then point your editor at `pythinker acp`.
249
273
250
274
**Zed** — add to `~/.config/zed/settings.json`:
251
275
252
276
```json
253
277
{
254
278
"agent_servers": {
255
-
"PyThinker": {
279
+
"Pythinker Code": {
256
280
"type": "custom",
257
281
"command": "pythinker",
258
282
"args": ["acp"],
@@ -276,6 +300,7 @@ Open a new conversation in Zed's Agent panel. For JetBrains setup, troubleshooti
276
300
| IDE integration |[guides/ides](https://pythoughtsai.github.io/pythinker-code/en/guides/ides)|
0 commit comments