Skip to content

feat(tui): add local embedded TUI mode with terminal/chat aliases#66767

Merged
obviyus merged 21 commits into
openclaw:mainfrom
fuller-stack-dev:feat/local-embedded-tui
Apr 22, 2026
Merged

feat(tui): add local embedded TUI mode with terminal/chat aliases#66767
obviyus merged 21 commits into
openclaw:mainfrom
fuller-stack-dev:feat/local-embedded-tui

Conversation

@fuller-stack-dev

@fuller-stack-dev fuller-stack-dev commented Apr 14, 2026

Copy link
Copy Markdown
Member

Summary

Adds a gateway-free local TUI path so users can run OpenClaw in their terminal without needing a running gateway process.

  • openclaw tui --local flag for local embedded mode (no gateway required)
  • openclaw terminal / openclaw chat aliases that imply --local
  • TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend implementation driving the agent loop in-process via agentCommandFromIngress
  • /auth slash command with TUI suspend/resume flow and codex login delegation for OpenAI Codex provider (avoids prolite plan issue from OpenClaw's OAuth originator)
  • Default model display fallback on startup
  • Local-aware status text ("local ready" instead of "connected") and console log suppression
  • Concise auth error hints, raw HTML 403 suppression in lifecycle handler messages
  • Onboarding hatch flow launches local TUI (no gateway required), Web UI option only shown when gateway is reachable
  • Commander .alias() bug fix in run-main.ts (.aliases().includes() check)

Files Changed

Area Files What
TUI backend tui-backend.ts, embedded-backend.ts New interface + local implementation
TUI core tui.ts, tui-types.ts, commands.ts Local mode, log suppression, /auth flow
TUI handlers tui-command-handlers.ts, tui-event-handlers.ts, tui-session-actions.ts Backend abstraction, auth hints
CLI tui-cli.ts, run-main.ts, register.subclis-core.ts, subcli-descriptors.ts Aliases, --local flag, alias bug fix
Agents model-selection-display.ts, pi-embedded-subscribe.handlers.lifecycle.ts Default model fallback, 403 suppression
Wizard setup.finalize.ts Hatch launches local TUI
Gateway gateway-chat.ts Implements TuiBackend, shared types extracted

Testing

  • 145 tests across 11 test files, all passing
  • pnpm build clean
  • pnpm check (lint/format/cycles/tsgo) clean on touched files
  • Pre-commit hook passed (oxlint 0 errors, 0 import cycles)

@openclaw-barnacle openclaw-barnacle Bot added cli CLI command changes agents Agent runtime and tooling size: XL labels Apr 14, 2026
@greptile-apps

greptile-apps Bot commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a gateway-free embedded TUI mode (openclaw tui --local, openclaw terminal, openclaw chat) backed by a clean TuiBackend interface abstraction. It also fixes a Commander.js alias recognition bug in run-main.ts (.aliases().includes(primary)) and wires the onboarding hatch flow to launch the TUI locally without requiring a running gateway.

The implementation is well-structured: the EmbeddedTuiBackend correctly uses a finalSent guard to prevent double-emit from the concurrent handleAgentEvent lifecycle path and the post-agentCommandFromIngress path in runTurn, and stop() safely aborts in-flight runs before clearing the run map. All remaining findings are P2.

Confidence Score: 5/5

Safe to merge — no P0/P1 issues found; all comments are style-level suggestions.

The core concurrency correctness (finalSent guard, abort-on-stop, run-map cleanup) is solid and well-tested (145 tests). The Commander alias fix is correct. The prior P1 concern about broad process.argv scanning has been addressed. Remaining comments are P2 (an unused required field in a context type, and a type assertion in listModels that could expose undefined names).

src/tui/embedded-backend.ts (listModels type assertion) and src/tui/tui-command-handlers.ts (noteLocalRunId required but unused).

Prompt To Fix All With AI
This is a comment left during a code review.
Path: src/tui/tui-command-handlers.ts
Line: 29-53

Comment:
**`noteLocalRunId` required in context but never used**

`noteLocalRunId` is declared as a required field in `CommandHandlerContext` (no `?`) but is never destructured or referenced anywhere inside `createCommandHandlers`. The actual `noteLocalRunId` call happens in `createEventHandlers` via the `handleChatEvent` / `pendingOptimisticUserMessage` path — the command-handler context doesn't need it. Keeping it required silently forces callers to supply a value that is immediately discarded, and may mislead future readers into thinking it is used here.

```suggestion
  noteLocalRunId?: (runId: string) => void;
  noteLocalBtwRunId?: (runId: string) => void;
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: src/tui/embedded-backend.ts
Line: 346-355

Comment:
**Unchecked type assertion on catalog entries**

`allowedCatalog` and `catalog` are cast to `TuiModelChoice[]` without verifying the shape. `TuiModelChoice` requires `name: string` (non-optional), but the catalog entries from `loadGatewayModelCatalog` / `buildAllowedModelSet` may use `name?: string | undefined`. If any entry is missing `name`, callers that unconditionally read `model.name` (e.g. the model-selector label) will render `undefined`.

Consider using a mapping to ensure the shape, mirroring what `GatewayChatClient.listModels` returns from the wire:

```typescript
const entries = allowedCatalog.length > 0 ? allowedCatalog : catalog;
return entries.map((m) => ({
  id: m.id,
  name: m.name ?? m.id,
  provider: m.provider,
  contextWindow: m.contextWindow,
  reasoning: m.reasoning,
}));
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (2): Last reviewed commit: "TUI: fix alias detection, cross-platform..." | Re-trigger Greptile

Comment thread src/cli/tui-cli.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 43a2fc94c1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/cli/tui-cli.ts Outdated
Comment thread src/tui/tui.ts Outdated
Comment thread src/tui/embedded-backend.ts
@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui gateway Gateway runtime labels Apr 14, 2026
@JSy-LodgeLink

Copy link
Copy Markdown

@greptileai review again please

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6fdda81c21

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/tui.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1fcadc8f60

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/embedded-backend.ts

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ff005edb26

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/embedded-backend.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d682cbf3a6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/cli/tui-cli.ts Outdated
@fuller-stack-dev

Copy link
Copy Markdown
Member Author

Also addressed the two summary-only review notes in 5af25f2957:

  • src/tui/tui-command-handlers.ts: noteLocalRunId is now optional since createCommandHandlers() does not use it.
  • src/tui/embedded-backend.ts: listModels() now maps catalog entries to a guaranteed TuiModelChoice shape and falls back to name ?? id instead of using an unchecked cast.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5af25f2957

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/tui.ts Outdated
Comment thread src/agents/pi-tools.before-tool-call.ts Outdated
@fuller-stack-dev

Copy link
Copy Markdown
Member Author

Also fixed the current CI failures in 5993a99d9b:

  • synced the stale workflow files on this branch to the current upstream/main versions so security-fast no longer audits an outdated reusable workflow diff
  • fixed the merged-branch check failure by preserving allowPrivateNetwork through media-understanding provider request resolution and adding the missing request type field

Local verification on this branch now passes:

  • OPENCLAW_LOCAL_CHECK=0 pnpm check
  • pnpm build
  • pnpm test src/agents/pi-tools.before-tool-call.embedded-mode.test.ts src/tui/tui.test.ts src/media-understanding/runner.proxy.test.ts

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5993a99d9b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml Outdated
@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts and removed scripts Repository scripts labels Apr 15, 2026
@fuller-stack-dev

Copy link
Copy Markdown
Member Author

Merged the latest upstream/main into feat/local-embedded-tui as b4e61bc7ab to resolve the remaining PR merge conflicts without force-pushing. The only hand-resolved conflict files were src/agents/pi-embedded-runner/run/attempt.prompt-helpers.ts and src/media-understanding/types.ts; the rest came from the base branch merge.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1cf689c6eb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/tui.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e9acb355b0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/tui/tui.ts
@openclaw-barnacle openclaw-barnacle Bot removed channel: whatsapp-web Channel integration: whatsapp-web scripts Repository scripts extensions: webhooks extensions: lmstudio labels Apr 18, 2026
@obviyus
obviyus force-pushed the feat/local-embedded-tui branch from 458f2af to 74d4d28 Compare April 22, 2026 04:30

@obviyus obviyus left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified the embedded local TUI approval path: approval-required plugin tools no longer get auto-approved when the Gateway approval route is unavailable, and the local TUI smoke runs without a Gateway.

Maintainer follow-up: restored embedded session resolution, added the Unreleased changelog entry, and fixed setup TUI relaunch so local: true becomes --local in the spawned process.

Local gate: targeted embedded/TUI/wizard tests, pnpm check, and pnpm build.

@obviyus
obviyus merged commit 276c000 into openclaw:main Apr 22, 2026
7 of 8 checks passed
@obviyus

obviyus commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Landed on main.

Thanks @fuller-stack-dev.

medikoo pushed a commit to medikoo/openclaw that referenced this pull request Apr 24, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
ogt-redknie pushed a commit to ogt-redknie/OPENX that referenced this pull request May 2, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
zhonghe0615 pushed a commit to zhonghe0615/openclaw that referenced this pull request May 7, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
globalcaos pushed a commit to globalcaos/tinkerclaw that referenced this pull request May 13, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
…ck-dev)

* feat(tui): add local embedded TUI mode with terminal/chat aliases

Adds a gateway-free local TUI path so users can run openclaw in their
terminal without needing a running gateway process.

- TuiBackend interface abstraction (tui-backend.ts) with EmbeddedTuiBackend
  implementation that drives the agent loop in-process
- openclaw tui --local flag for local embedded mode
- openclaw terminal / openclaw chat aliases that imply --local
- /auth slash command with codex CLI delegation to avoid prolite plan issue
- Default model display fallback on startup
- Local-aware status text and log suppression
- Concise auth error hints, raw HTML 403 suppression
- Onboarding hatch flow launches local TUI (no gateway required)
- Commander alias bug fix in run-main.ts (.aliases() check)
- All new and updated tests passing (145/145)

* TUI: fix alias detection, cross-platform codex lookup, and history byte-budget safeguards

* TUI: remove RuntimeEnv type annotation to fix CI oxlint error

* TUI: filter gateway-dependent tools and auto-approve plugin hooks in embedded mode

* TUI: suppress console noise and add embedded mode system prompt note

* TUI: reduce embedded-mode tool filtering from 15 to 7, add local session tools

* TUI: fix remaining PR review comments

* TUI: address latest review feedback and CI drift

* Core: align prompt helper with latest base

* Core: match prompt helper formatting with base

* Core: restore prompt helper from latest base

* fix(tui): preserve local auth fallback in source checkouts

* fix(tts): guard telephony provider invocation

* fix(tui): support Windows codex auth shim

* fix(tui): harden local auth flow

* fix: preserve embedded tool-first run events

* fix(tui): keep embedded plugin approvals gated

* fix(tui): restore embedded attempt import

* fix(tui): resolve sessions in embedded stub

* fix: add embedded TUI changelog entry (openclaw#66767) (thanks @fuller-stack-dev)

* fix: pass setup TUI local mode through relaunch (openclaw#66767) (thanks @fuller-stack-dev)

---------

Co-authored-by: Ayaan Zaidi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: web-ui App: web-ui cli CLI command changes gateway Gateway runtime size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants