dsh-t3-new-session-screen
A T3 Code-style New Session screen for the composer: a "What should we build in <project>?" headline whose project name opens a workspace menu, a reasoning-effort picker in the composer tool row, and a git branch strip under the card that searches local and remote refs and switches with git checkout
Install
dsh plugin --profile web add dsh-t3-new-session-screen
Sandbox test
This plugin has not been tested yet. Submit a test →
README
dsh-t3-new-session-screen
T3 Code's New Session screen for the
DeepSeek Harness composer.
Three things that screen has and DeepSeek Harness's blank session does not:
What should we build in <project>?— the headline from T3's
DraftHeroHeadline, where the project name is itself the picker.
- A reasoning-effort picker — T3's
TraitsPicker, surfaced in the composer
tool row instead of hidden behind the model menu.
- A git branch picker — T3's
BranchToolbar, with realgit checkout.
Credit
The screen this plugin implements is T3 Code's. The headline sentence and its
inline project control, the effort picker's shape, and the branch strip with its
searchable ref menu are all theirs. T3 Code is
this port keeps the same behaviour and swaps the data underneath for DeepSeek
Harness's own services. Please support the original project.
Features
- The headline.
What should we build in <project>?, centred over the
composer, with the project name underlined and clickable. Clicking it opens a
T3-shaped project menu: every registered workspace, a check on the current
one, a divider, and New project. Picking a project moves the blank session
to it. DSH renders its own headline from a literal string with no slot, so
this plugin fills the only additive hole in that row
(conversation.hero.brand.mark) and suppresses the shipped title beside it.
The template is configurable, and {project} marks where the control goes.
- Reasoning effort. A gauge control in the composer tool row showing the
level the current model is actually using (Off, Low, High, Max for
DeepSeek's own models). The menu carries each level's description and a check
on the current one. It reads and writes the same per-session model directory
the model seat uses, so the model seat's own label updates with it. A model
that advertises no effort levels renders no control at all — effort is a
per-model capability, not a global preference.
- Git branch. A strip under the composer card: the checkout on the left, the
current ref on the right. The ref menu searches, lists local and remote refs,
labels current / default / remote, and switches with
git checkout <ref>. A Create new ref row appears once the query names a
ref that does not exist yet, and runs git checkout -b. DSH ships no git
surface of any kind, so every fact here comes from this bundle's Host half.
The strip is aligned on the composer's shared width axis, not on the card — see
[Alignment](#alignment).
Screenshots
The New Session screen · Project menu · Branch picker · Reasoning effort
 ·  ·  · 
Install
From this repository:
dsh plugin --profile web add github:yusufameri/dsh-t3-new-session-screen
Once the package is on npm, the registry form is one word shorter:
dsh plugin --profile web add dsh-t3-new-session-screen
Either reconciles the profile's bundle list, so the next boot merges the
plugin's patch and loads its client half. Removing the bundle restores the
shipped headline, model seat and composer with no residue.
Configuration
Every field is optional; the defaults render the whole screen. Set them on the
bundle's row in the profile's cordis.patch.yml:
- id: t3-new-session-screen
name: 'dsh-t3-new-session-screen'
config:
headlineText: 'What should we build in {project}?'
effortSlot: right
branchCreateEnabled: false
Key · Default · Meaning
headlineEnabled · true · Replace the blank-session headline with the T3 sentence.
headlineText · What should we build in {project}? · Headline template; {project} becomes the interactive project name. Without the hole the sentence renders as plain text.
hideShippedHeadline · true · Hide DSH's own "Into the Unknown" title beside the headline.
hideWorkspaceChip · true · Hide the shipped workspace chip under the headline, which the headline supersedes.
effortEnabled · true · Reasoning-effort picker in the composer tool row.
effortSlot · left · Which composer seat the effort picker occupies: left (beside the permission and plan controls) or right (beside the model seat).
branchEnabled · true · Git branch strip under the composer, on the new-session screen and in an active session.
branchCreateEnabled · true · Offer Create new ref (git checkout -b) in the branch picker.
gitEnabled · true · The git bridge behind the branch strip. Turning it off leaves the strip absent.
gitTimeoutMs · 30000 · Budget of one git child process.
The client half reads the resolved configuration from the Host over the same
route the branch data uses, so a change takes effect on the next page load.
How it works
The whole screen is contributed through DSH's own seams.
Piece · Seam
Headline · conversation.hero.brand.mark (single, root) — the only additive hole in DSH's headline row.
Project menu · conversation.hero.workspace (single, root) at priority -1, which shadows the shipped WorkspacePicker in the same cell.
Project roster · The root useWorkspaces standard hook, fed by ctx.slots.provideRoot.
New project · ctx.uiWorkspace.pickDirectory() then ctx.workspaces.create({ path }).
Reasoning effort · conversation.input.left / .right (list), reading ctx.modelDirectories.directoryFor(sessionId).
Branch strip · conversation.input.dock (one seat for both phases).
Working directory · `ct
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::1,最后更新 2026-09-28