DeepSeek Harness plugin

seektty

SeekTTY, a pluggable DeepSeek-colored terminal surface for DeepSeek Harness

Jump to install

Source facts

Repository
Hilbert-beinghappy/seektty
Latest update
Aug 22, 2026
Category
Development & Runtime
GitHub stars
54
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Hilbert-beinghappy/seektty
Plugin: seektty
Author: Hilbert-beinghappy

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

<div align="center">

<img src="assets/seektty-logo.png" alt="SeekTTY logo" width="200">

<h1>SeekTTY</h1>

<p>A keyboard-first terminal workspace for DeepSeek Harness, from an early idea to an executable plan.</p>

<p> <a href="https://github.com/Hilbert-beinghappy/seektty/releases"><img src="https://img.shields.io/badge/Version-1.2.1-orange" alt="Version 1.2.1"></a> <img src="https://img.shields.io/badge/DeepSeek%20Harness-0.1.1--rc.2-5B5BD6" alt="DeepSeek Harness 0.1.1-rc.2"> <img src="https://img.shields.io/badge/Node-%5E22.19.0%20%7C%7C%20%3E%3D24-339933?logo=nodedotjs&logoColor=white" alt="Node.js 22.19 or newer"> <a href="https://github.com/Hilbert-beinghappy/seektty/actions"><img src="https://github.com/Hilbert-beinghappy/seektty/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow" alt="MIT License"></a> </p>

<p> <a href="#project-overview">Project overview</a> · <a href="#clarify-and-plan">Clarify and Plan</a> · <a href="#harness-capabilities-available-in-the-tui">Terminal capabilities</a> · <a href="#quick-start">Quick start</a> · <a href="#verified-scope">Verification</a> </p>

<p>English · <a href="README.zh.md">中文</a></p>

</div>

---

Project overview

Run deepseek from a project directory to use the native Agent, Session, model, permission, Settings, Profile, plugin, and persistence services of DeepSeek Harness from one terminal workspace. Prompts, code changes, tool calls, sessions, model routes, permissions, plugins, subagents, and diagnostics all operate on the same Harness state.

When an idea still needs definition, the optional plugin-backed /clarify workflow reads the active Session and composer draft, follows the real model route, and generates Socratic questions, contextual options, and a live draft preview that evolves after every answer. Accepting the preview places a complete Draft back in the ordinary composer for review and manual submission. Harness native /plan can then turn the clarified requirement into an implementation plan.

The Clarify Host plugin owns the Session-bound clarification process, model-generated questions, options, previews, and six-method Remote. When that compatible plugin capability is active, SeekTTY detects it and adds the local /clarify command plus its keyboard-first TUI surface. SeekTTY passes the current Session and draft to the plugin, then writes an accepted Draft back into the composer.

Clarify model calls run through Auxiliary Runtime and are recorded in its dedicated auxiliary_runtime ledger. Official Agent-loop usage remains in tokenUsage; SeekTTY /status shows separately sourced Official, Auxiliary, and derived Combined totals while the snapshot contract is healthy.

DeepSeek light and dark interfaces

Light theme

![SeekTTY DeepSeek light start screen](assets/seektty-tui.png)

Dark theme

![SeekTTY DeepSeek dark start screen](assets/seektty-tui-dark.png)

The live view fills the terminal and keeps the composer and status at the bottom. Unused rows remain inside the conversation viewport and disappear as output grows; longer conversations continue into native terminal scrollback.

Clarify and Plan

Clarify is an optional DeepSeek Harness Host plugin, and SeekTTY is its keyboard-first terminal consumer. Plugin-backed Clarify and Harness-native Plan cover consecutive parts of one workflow.

Clarify handles the stage where the desired outcome still needs definition. It uses the current Session and draft to ask one focused question at a time, carries accepted decisions forward, and updates a reviewable Draft after every answer. Accepting returns that Draft to the composer. You can edit it and press Enter when it represents what you want.

Plan handles the stage where the requirement is ready for implementation. Harness native /plan turns the submitted requirement into an implementation proposal and opens the normal plan-review flow.

Where /clarify comes from

ComponentResponsibility
SeekTTYProbes the Clarify Remote, dynamically adds /clarify to the local command catalog, renders the terminal interaction, supplies the current Session and composer seed, and returns an accepted Draft to the composer.
dsh-plugin-clarifyPublishes start, answer, accept, refine, cancel, and fetchDraft over clarify.wire/1; owns the temporary clarification process and generates questions, options, and evolving Draft previews.
dsh-plugin-auxiliary-runtimeProvides Clarify's same-process model execution, limits, cancellation, and separately sourced auxiliary usage.

The standalone SeekTTY shell presents its core command catalog. Activating the two Host plugins in the same Profile expands that catalog with the complete /clarify workflow.

[Active Session + composer draft]
              |
              v
     +------------------+      clarify Remote      +------------------+
     | SeekTTY consumer | -----------------------> | Clarify plugin   |
     | /clarify adapter | <----------------------- | process / model  |
     +--------+---------+   live Draft preview     +--------+---------+
              |                                            |
              |                                            | same-process run
              |                                            v
              |                                   +-------------------+
              |                                   | Auxiliary Runtime |
              |                                   | limits / cancel   |
              |                                   | usage ledger      |
              |                                   +---------+---------+
              |                                             |
              |                                             v
              |                                   [official model route]
              |                                   off-transcript, no-tools
              |
              | accept: Draft returns to the composer
              v
        [review and edit]
              |
              | press Enter
              v
     [formal Session message]
              |
              | /plan when an implementation plan is useful
              v
     [plan review -> Agent execution]

Auxiliary snapshot ---------------------> SeekTTY /status
                                          Official | Auxiliary | Combined

Main Session transcript

Questions, options, preview revisions, and refine feedback live in a temporary clarification process held in Host memory. It enters stale after 15 minutes without interaction by default and reports staleReason=ttl-expired. The main Session transcript receives the formal user message only after you submit the accepted Draft. Clarification state stays out of the input queue, pending interactions, Plan, Goal, Profile files, and SeekTTY local files.

Auxiliary model usage

Each Clarify model call is recorded by Auxiliary Runtime in the official storageDomain under auxiliary_runtime. Official tokenUsage continues to represent Agent-loop calls. Auxiliary derives Combined values from the four disjoint buckets—uncachedInputTokens, outputTokens, cacheReadTokens, and cacheWriteTokens—at read time, and SeekTTY /status validates and displays the snapshot. The auxiliary ledger stores call identity, purpose, status, token buckets, normalized failures, and timestamps; prompts, message text, model output, custom answers, credentials, and filesystem paths stay outside the ledger.

Start plugin-backed Clarify from the composer

SeekTTY adds /clarify to its local command catalog while the dsh-plugin-clarify Host plugin exposes a compatible six-method Remote with clarify.wire/1. The last jointly accepted Release still installs Clarify 0.2.1; 0.2.0 remains an available rollback artifact. The unpublished trio SeekTTY 1.2.1 + Auxiliary Runtime 0.1.1 + Clarify 0.2.2 has Lane A no-key PTY evidence and 2026-08-22 Lane B live-provider observations on candidate4. This is not a Release or complete joint acceptance. Details are in [Verified scope](#verified-scope).

  • Run it from the command palette to keep the whole composer as the seed.
  • Type /clarify some text to use the argument as the seed.
  • End an existing draft with a standalone /clarify token or line to use the preceding draft as the seed.

Every answer refreshes the live Draft preview. The number of questions follows the unresolved decisions in the current Session: Clarify usually asks one focused question at a time and moves directly to review when the preview is ready to send. You can answer, refine the preview directly, accept it, or cancel. Accepting writes the reviewed Draft into the ordinary composer; Enter remains the explicit send action.

Custom interface and code themes, including VS Code imports

Theme customization is a first-class SeekTTY feature: interface background and text colors are editable, code-block colors and syntax styles are independently editable, and /theme import accepts local VS Code JSON/JSONC themes with portable TextMate token colors. A palette of 3–16 colors can also generate a complete light or dark theme for preview and further adjustment.

TypeScript in the DeepSeek light interface

![SeekTTY light TypeScript syntax highlighting](assets/seektty-code-light.png)

Tool parameters, file reads, and Diff in the DeepSeek dark interface

![SeekTTY dark tool and Diff syntax highlighting](assets/seektty-code-dark.png)

Markdown fences disappear into continuous code surfaces. Assistant code, Shell commands, structured tool parameters, file reads, JSON, and Diff use the same active code theme; ordinary conversation text keeps the interface style. Every code background occupies continuous terminal cells and forms one uninterrupted surface.

Harness capabilities available in the TUI

The current release covers these capabilities:

AreaAvailable operations
Conversation and runsStreaming responses, Markdown/GFM, fence-free theme-aware syntax-highlighted code blocks, links, tables, reasoning visibility, collapsed/expanded/hidden tool cards, model retries, compaction, output-limit and error states, and Ctrl+C cancellation
SessionsCreate, resume, list, full-text search, rename, fork, archive, copy the last answer, export ZIP, or /export md Markdown
WorkspacesStart from the current directory; add, select, rename, unregister, reorder, and reorder sessions within a workspace; unregistering never deletes files or session logs
Agent modesStandard, Code/PTC, Minimal, and Cordis/Create baseline modes plus dynamically registered Agent Presets; switching an active conversation creates a new session in the same workspace
Models and ProvidersDynamic Provider, model, and supported reasoning-effort discovery; current route display; per-session switching; catalog, credential, and routing diagnostics
Permissions and approvalsInspect and switch Host permission presets, cycle with Shift+Tab, confirm risky upgrades, allow one tool call, skip further prompts for a tool in this session, or reject
Input queue and steeringQueue prompts while the Agent runs, inspect/edit/remove entries, steer one entry or the entire queue into the active turn, and send /steer directly
Human interactionSingle choice, multi-select, custom answers, skip, cancel, and plan review; submitting an interaction returns to the latest output while the blocked turn resumes, with /pending recovery when retrying is needed
Image attachmentsAdd PNG, JPEG, GIF, or WebP by pasting an image or file path, or with /attach; macOS reads the clipboard via osascript (optional pngpaste), Linux via wl-paste/xclip, Windows via PowerShell; pending images appear under the composer; enforce the live Host imageLimits catalog (count, bytes, pixels, optional side length); render inline when supported and fall back to file metadata otherwise. Image-capable models come from that same live catalog. Official dsh 0.1.1-rc.2 Vision-Exp must be selected explicitly in /model. Lane A observed it listed and selectable; Lane B on candidate4 observed PNG send-and-clear and JFIF via the official Host PNG variant. See [Verified scope](#verified-scope)
Plan, Goal, Todo, and compactionNative /plan, /goal, and /compact commands with plan review, goal state, Todo counts, and compaction records in the transcript
Tools and produced files◆ action · duration headers with live elapsed time and connected invocation code, dynamic tool catalog, parameters, execution-boundary guidance, line-numbered highlighted file reads, highlighted Shell/JSON/Diff views, safe native terminal ANSI, generic fallback cards, session-wide produced-file listing grouped by turn, in-TUI view, path copy, and confirmed external open
SubagentsInspect direct children, activity, tree state, token use, and duration; open continuable or read-only sessions and stop an active child turn
Background jobs and workflowsJob type, status, start/end times, duration, and detail views; workflow phases, members, results, and failure states in the transcript
Statistics and trajectoryPer-turn steps, LLM/tool time, first-token latency, throughput, cache hit, input/output tokens, model requests, running calls, and structured trajectory inspection
ProfilesList, create, copy, switch, and diagnose terminal compatibility; controlled restart restores the workspace, session, unsent draft, and attachments
Settings and credentialsFirst-run API-key setup when no usable Provider exists; enumerate every Settings namespace in the active Profile; dedicated default-model, permission, Agent-mode, and marketplace-source controls; Schema fallback for all other fields; write-only secrets
Plugins and marketplace/plugin center, installed list, search, details, install, remove, update, Bundle ordering, source management, and diagnostics; npm, Git, tarball, and local-path specs
Skills and MCPDynamic user-invocable Skill discovery and native command insertion; MCP tools, instances, settings, load state, and separate process/remote-service risk information
FeedbackSession feedback plus positive/negative Assistant-message ratings, optional notes, and feedback removal
Status and diagnosticsHarness, Node, platform, Profile, workspace, session, mode, model, permission, pnpm, plugin state, and actionable diagnostics
ThemesIndependent interface and code-block themes; automatic code colors follow DeepSeek dark/light; named custom themes, manual colors, 3–16-color generation, and local VS Code JSON/JSONC import with TextMate colors and portable token styles; live preview, contrast warnings, terminal-color fallbacks, and NO_COLOR
Interface languageLive Chinese/English switching through /language; the explicit preference is shared with Harness Web through the official locale.preference Settings value, while auto follows the terminal locale

Models, Providers, Agent Presets, permissions, Host commands, tools, Settings, Skills, MCP, and marketplace sources are discovered from the running Harness. New capabilities registered by upstream or third-party Bundles enter the dynamic catalogs, with Schema controls, structured details, and actionable diagnostics available while dedicated views evolve.

Quick start

The repositories and GitHub Releases are public. The last jointly accepted Clarify workflow remains official DeepSeek Harness 0.1.0-rc.8 with SeekTTY 1.2.0, Auxiliary Runtime 0.1.0, and Clarify 0.2.1. Install those published tarballs through the native dsh plugin command:

pnpm add --global @deepseek-ai/dsh@0.1.0-rc.8

dsh plugin --profile tui add https://github.com/Hilbert-beinghappy/seektty/releases/download/v1.2.0/seektty-1.2.0.tgz
dsh plugin --profile tui add https://github.com/Hilbert-beinghappy/dsh-plugin-auxiliary-runtime/releases/download/v0.1.0/dsh-plugin-auxiliary-runtime-0.1.0.tgz
dsh plugin --profile tui add https://github.com/Hilbert-beinghappy/dsh-plugin-clarify/releases/download/v0.2.1/dsh-plugin-clarify-0.2.1.tgz

dsh --profile tui

This path consumes packed artifacts and avoids Git-source prepare / allowBuilds. The first package installs the standalone SeekTTY shell, the second provides Auxiliary model execution, and the third provides the Clarify Host service and Remote. Once both Host plugins are active in the same Profile, SeekTTY discovers the Remote and adds /clarify to the terminal command catalog.

SeekTTY 1.2.1 currently tests official 0.1.1-rc.2. The unpublished trio SeekTTY 1.2.1 + Auxiliary Runtime 0.1.1 + Clarify 0.2.2 has Lane A no-key PTY evidence and 2026-08-22 Lane B live-provider observations on candidate4. This is not a Release or complete joint acceptance. Details are in [Verified scope](#verified-scope). There is no v1.2.1 Release asset yet; install this candidate from a locally packed tarball, or from a future GitHub Release listed at https://github.com/Hilbert-beinghappy/seektty/releases. Do not invent a download URL.

Bare deepseek launcher

SeekTTY supports macOS, Linux, and Windows. Install the same Release tarball globally; on Windows, pnpm add --global creates PATHEXT-aware shims for dsh.cmd.

pnpm add --global https://github.com/Hilbert-beinghappy/seektty/releases/download/v1.2.0/seektty-1.2.0.tgz
export SEEKTTY_SPEC=https://github.com/Hilbert-beinghappy/seektty/releases/download/v1.2.0/seektty-1.2.0.tgz
deepseek

PowerShell uses the same URL:

pnpm add --global 'https://github.com/Hilbert-beinghappy/seektty/releases/download/v1.2.0/seektty-1.2.0.tgz'
$env:SEEKTTY_SPEC='https://github.com/Hilbert-beinghappy/seektty/releases/download/v1.2.0/seektty-1.2.0.tgz'
deepseek

deepseek requires dsh on PATH, or DSH_BIN pointing at the executable. SEEKTTY_SPEC pins Profile reconciliation to the same prebuilt tarball. Without that override, this source tree's default spec is github:Hilbert-beinghappy/seektty#v1.2.1; that Git tag exists only after the Release is created. Until then, pack seektty-1.2.1.tgz and set SEEKTTY_SPEC to that file. Later runs boot the same Profile. Initial tasks, workspaces, Session resume, and custom Profiles are supported:

deepseek "check this project"
deepseek --cwd ../project
deepseek --resume
deepseek --resume <sessionId>
deepseek --profile team-tui
deepseek --version
deepseek --update

deepseek --update force-scans and installs at most one permitted component. Default SEEKTTY_UPDATE=auto: on launch it fetches official dsh npm latest (discovery only; not next or GitHub pre-releases) and the newest SeekTTY GitHub Release. SeekTTY is self-first: a SeekTTY update wins the round and skips dsh. Otherwise dsh installs only when latest is in the peer-aligned auto range (legacy rc.6–rc.8 or the exact current tested Host) and is newer than the installed dsh --version. Future or gap Hosts such as 0.1.1-rc.1 are mentioned but never installed. DSH_BIN pins skip dsh. Local link:/file: installs and SEEKTTY_SPEC overrides are left alone. Network or install failures never block boot. Set SEEKTTY_UPDATE=check to restore a post-session notice, or SEEKTTY_UPDATE=0 to disable.

First-run API key setup

When the active Profile has no usable model Provider, and the official DeepSeek Provider exposes a missing writable credential reference, SeekTTY opens a centered write-only prompt before the first interface frame. An