Skip to content

refactor: rebrand Gator TUI to Term / NemoClaw #130

Closed

Description

@johntmyers

Problem Statement

The TUI is currently branded as "Gator" throughout the codebase — CLI subcommand, UI title bar, docs, and agent skills. It needs to be rebranded: the CLI subcommand becomes nemoclaw term, the title shown in the TUI changes from "Gator" to "NemoClaw", and all other code/doc references change from "Gator" to "Term" or "TUI" as appropriate. This is a naming cleanup to move to a generic, consistent brand.

Technical Context

The TUI is implemented in the navigator-tui crate and launched via a clap-derived Commands::Gator enum variant in navigator-cli. The variant name directly determines the subcommand string (nemoclaw gator). The visible brand text "Gator" is rendered in a single Span::styled call in ui/mod.rs. Beyond the source code, the name is embedded in architecture docs, mise task files, and agent skill files. The crate name itself (navigator-tui) does not contain "gator" and needs no change.

Affected Components

Component Key Files Role
CLI crates/navigator-cli/src/main.rs Defines the Gator subcommand variant and dispatch match arm
TUI crate crates/navigator-tui/src/lib.rs, src/ui/mod.rs, Cargo.toml Crate description, doc comments, and rendered title bar text
Mise tasks tasks/gator.toml Task definitions for mise run gator / gator:dev
Architecture docs architecture/gator.md, architecture/system-architecture.md, architecture/sandbox-connect.md TUI documentation and system diagrams
Agent skills .agents/skills/tui-development/SKILL.md, .agents/skills/nemoclaw-cli/cli-reference.md, .agents/skills/nemoclaw-cli/SKILL.md Agent guides referencing Gator by name

Technical Investigation

Architecture Overview

The TUI is a ratatui-based terminal application in the navigator-tui crate. It is launched as a subcommand of the nemoclaw binary. The CLI uses clap's derive macro — the Commands enum has a Gator variant which clap auto-lowercases to the gator subcommand. The main function dispatches Commands::Gator to call navigator_tui::run(). Inside the TUI, the brand is rendered in the title bar via a single Span::styled(" Gator", ...) call.

Code References

Location Description
crates/navigator-cli/src/main.rs:145 Doc comment: /// Launch the Gator interactive TUI.
crates/navigator-cli/src/main.rs:146 Clap enum variant: Gator, — determines the gator subcommand name
crates/navigator-cli/src/main.rs:1288 Match arm: Some(Commands::Gator) => { — dispatches to TUI
crates/navigator-tui/Cargo.toml:6 Package description: "Gator – NemoClaw interactive TUI"
crates/navigator-tui/src/lib.rs:28 Doc comment: /// Launch the Gator TUI.
crates/navigator-tui/src/ui/mod.rs:101 Rendered title: Span::styled(" Gator", styles::ACCENT_BOLD)
tasks/gator.toml Mise task file: task names [gator], [gator:dev] and run = "nemoclaw gator"
architecture/gator.md Full TUI architecture doc (~25 "Gator" references)
architecture/system-architecture.md:10,180 System diagram and component list mentioning "Gator TUI"
architecture/sandbox-connect.md:173,178,186 TUI sandbox workflow references
.agents/skills/tui-development/SKILL.md ~14 lines referencing "Gator" in the TUI dev guide
.agents/skills/nemoclaw-cli/cli-reference.md:67,342,344 CLI command tree and nemoclaw gator reference
.agents/skills/nemoclaw-cli/SKILL.md:567 Cross-reference to "Gator TUI"

Current Behavior

  • nemoclaw gator launches the TUI. The clap variant Commands::Gator is lowercased automatically.
  • The TUI title bar renders " Gator" as a styled span in the top-left corner.
  • mise run gator and mise run gator:dev are convenience tasks defined in tasks/gator.toml.
  • Architecture docs and agent skills refer to the TUI as "Gator" throughout.

What Would Need to Change

Source code (3 files, 6 changes):

  • main.rs: Rename enum variant Gator → Term, update doc comment and match arm
  • lib.rs: Update doc comment from "Gator" to "NemoClaw"
  • ui/mod.rs: Change rendered string from " Gator" to " NemoClaw"
  • Cargo.toml: Update package description

Mise tasks (1 file rename + content changes):

  • Rename tasks/gator.toml → tasks/term.toml
  • Update task names [gator] → [term], [gator:dev] → [term:dev]
  • Update run commands from nemoclaw gator to nemoclaw term

Architecture docs (1 file rename + content changes in 3 files):

  • Rename architecture/gator.md → architecture/tui.md
  • Update ~25 "Gator" references in the renamed file
  • Update 2 references in system-architecture.md
  • Update 3 references in sandbox-connect.md
  • Note: gator.md:151 references plans/gator-tui.md which does not exist (dead link — remove or fix)

Agent skill files (content changes in 3 files):

  • .agents/skills/tui-development/SKILL.md: ~14 line updates
  • .agents/skills/nemoclaw-cli/cli-reference.md: 3 line updates
  • .agents/skills/nemoclaw-cli/SKILL.md: 1 line update

Alternative Approaches Considered

The renaming rules are straightforward, but there are a few judgment calls:

  • Architecture doc filename: architecture/tui.md (generic) vs architecture/term.md (matches CLI subcommand). Recommend tui.md since the doc describes the TUI component, not the CLI subcommand.
  • Skill trigger keywords: Replace gator with both term and tui to cover both terms users might type.

Patterns to Follow

This is a find-and-replace refactor. The naming convention to apply:

  • CLI subcommand: term (lowercase, matches clap variant convention)
  • Rendered UI text: NemoClaw (product brand)
  • Prose/docs: "the TUI" or "NemoClaw TUI" (never "Term" as a proper noun in prose)
  • Task/file names: term (lowercase, matches CLI subcommand)

Proposed Approach

Rename the clap enum variant from Gator to Term to change the CLI subcommand, update the single rendered title string to "NemoClaw", then sweep through docs, mise tasks, and agent skills replacing "Gator" references with "Term", "TUI", or "NemoClaw" as context dictates. File renames for tasks/gator.toml and architecture/gator.md to match. This is a mechanical refactor with no behavioral changes.

Scope Assessment

  • Complexity: Low
  • Confidence: High — clear path, purely mechanical renaming
  • Estimated files to change: 10 (+ 2 file renames)
  • Issue type: refactor

Risks & Open Questions

  • Dead link: architecture/gator.md:151 references plans/gator-tui.md which doesn't exist. Decide whether to remove the link or create the plan doc.
  • External references: Any external docs, wikis, or READMEs outside the repo that reference nemoclaw gator will break. Verify no external tooling depends on the gator subcommand name.
  • Git branch: There's an existing branch feat(gator) in .git/config — this is historical and doesn't need changing.

Test Considerations

  • No existing tests reference "gator" directly, so no test changes needed
  • After the rename, verify cargo build succeeds (the enum variant rename is the only code change that could cause a compile error)
  • Verify nemoclaw term launches the TUI and the title bar shows "NemoClaw"
  • Verify mise run term and mise run term:dev work

Created by spike investigation. Use build-from-issue to plan and implement.

Activity

  1. johntmyers commented on Mar 5, 2026

    @johntmyers
    CollaboratorAuthor

    Note: The dead link at architecture/gator.md:151 referencing plans/gator-tui.md should be removed entirely during implementation, not replaced.

  2. johntmyers commented on Mar 5, 2026

    @johntmyers
    CollaboratorAuthor

    🏗️ build-plan

    Implementation Plan

    Issue type: refactor
    Complexity: Low
    Confidence: High — clear path, purely mechanical renaming

    Summary

    Rebrand the TUI from "Gator" to "Term"/"NemoClaw"/"TUI" across the entire codebase. The CLI subcommand changes from nemoclaw gator to nemoclaw term, the TUI title bar changes from "Gator" to "NemoClaw", and all doc/skill references are updated. Two files are renamed. No behavioral changes.

    Scope

    • crates/navigator-cli/src/main.rs: Rename Commands::Gator enum variant to Commands::Term, update doc comment and match arm
    • crates/navigator-tui/Cargo.toml: Update package description
    • crates/navigator-tui/src/lib.rs: Update doc comment
    • crates/navigator-tui/src/ui/mod.rs: Change rendered title string from " Gator" to " NemoClaw"
    • tasks/gator.toml → tasks/term.toml: Rename file, update task names and run commands
    • architecture/gator.md → architecture/tui.md: Rename file, update ~25 "Gator" references, remove dead link to plans/gator-tui.md
    • architecture/system-architecture.md: Update 2 "Gator" references
    • architecture/sandbox-connect.md: Update 3 "Gator" references
    • .agents/skills/tui-development/SKILL.md: Update ~14 "Gator"/"gator" references
    • .agents/skills/nemoclaw-cli/cli-reference.md: Update 3 references
    • .agents/skills/nemoclaw-cli/SKILL.md: Update 1 reference

    Implementation Steps

    1. Rust source code — Rename Commands::Gator → Commands::Term in main.rs (variant, doc comment, match arm). Update Cargo.toml description. Update lib.rs doc comment. Change ui/mod.rs title string. Verify cargo check passes.

    2. Mise task file — Delete tasks/gator.toml, create tasks/term.toml with updated task names ([term], [term:dev]) and run commands (nemoclaw term).

    3. Architecture docs — Rename architecture/gator.md → architecture/tui.md via git mv. Update all ~25 "Gator" references using the naming rules: "NemoClaw" for the product brand, "the TUI" for prose references, term for CLI subcommand. Remove the dead link to plans/gator-tui.md (per owner's instruction). Update system-architecture.md and sandbox-connect.md.

    4. Agent skill files — Update .agents/skills/tui-development/SKILL.md (~14 lines), .agents/skills/nemoclaw-cli/cli-reference.md (3 lines), .agents/skills/nemoclaw-cli/SKILL.md (1 line). Update trigger keywords to replace gator with term and tui.

    5. Verification — Run mise run pre-commit to confirm build, tests, lint, and formatting all pass.

    Naming Rules

    Context Old New
    CLI subcommand gator term
    Clap enum variant Gator Term
    TUI title bar Gator NemoClaw
    Prose/docs "Gator" "the TUI" or "NemoClaw TUI"
    Task/file names gator term
    Trigger keywords gator term, tui

    Test Plan

    • Unit tests: No test changes needed — no existing tests reference "gator". Pre-existing tests must continue to pass.
    • Integration tests: N/A — no behavioral changes.
    • E2E tests: N/A — no behavioral changes.

    Risks & Open Questions

    • None remaining. The dead link question was resolved (remove it).

    Documentation Impact

    • architecture/tui.md (renamed from gator.md) — full content update
    • architecture/system-architecture.md — 2 line updates
    • architecture/sandbox-connect.md — 3 line updates

    Revision 1 — initial plan

  3. added a commit that references this issue on Mar 5, 2026
    70198e9
  4. johntmyers commented on Mar 5, 2026

    @johntmyers
    CollaboratorAuthor

    🏗️ build-from-issue-agent

    Implementation Complete

    PR: #134

    What was built

    Rebranded the TUI from "Gator" to "Term"/"NemoClaw"/"TUI" across 12 files (including 2 file renames). CLI subcommand is now nemoclaw term, title bar shows "NemoClaw", all docs and skills updated.

    Tests

    • Unit: 0 new (no behavioral changes) — all 89 existing tests pass
    • Integration: N/A
    • E2E: N/A

    Docs updated

    • architecture/tui.md (renamed from gator.md)
    • architecture/system-architecture.md
    • architecture/sandbox-connect.md

    The issue will auto-close when the PR is merged.

  5. added a commit that references this issue on Mar 5, 2026
    e91aba6
  6. added a commit that references this issue on Mar 16, 2026
    ff99fec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:cliCLI-related workarea:docsDocumentation and examplesspikestate:agent-readyApproved for agent implementationstate:pr-openedPR has been opened for this issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions