sophon-cli 2.0.0

dotnet tool install --global sophon-cli --version 2.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local sophon-cli --version 2.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=sophon-cli&version=2.0.0
                    
nuke :add-package sophon-cli --version 2.0.0
                    

sophon — the Sophon command-line interface

NuGet

Sophon is an enterprise-grade AI personal assistant — "an intelligent operating system for your digital life." This package is its cross-platform CLI, distributed as a .NET global tool.

Install

dotnet tool install -g sophon-cli

To upgrade:

dotnet tool update -g sophon-cli

Requires the .NET 10 SDK on your machine.

Quick start

# First-run setup wizard (guides you through your first model provider + channel)
sophon onboard

# Start the local Sophon Gateway (or point at a remote one)
sophon start

# Open the interactive chat REPL — streaming tokens, inline approvals, tool progress
sophon

If you run sophon with no arguments, you drop straight into a terminal chat that feels like Claude Code or GitHub CLI: token-by-token streaming, plan trees that update in place, tool-progress lines, inline approval cards, and Ctrl+C to cancel (once to cancel the task, twice to exit).

Full-screen chat (default)

On capable terminals sophon opens a full-screen chat (alternate buffer, like Claude Code or opencode): an app-managed scrollback you scroll with the wheel/PgUp/PgDn, a live subagent status band, bottom-stack approval and question cards with live countdowns, /theme with live full-frame preview, a native session picker behind argumentless /resume, and a /plan overlay. Non-capable terminals (redirected stdio, the Dashboard's embedded terminal, screen readers, tiny windows) automatically fall back to the previous pinned/classic surfaces — nothing to configure. The one loud case: a terminal that passes every probe but where VT modes can't actually be enabled gets an explicit error with the opt-out, instead of a silent fallback (see the fallback chain in docs/CLI.md).

Opt out with SOPHON_CLI_FULLSCREEN=0 (env) or "fullScreen": false in ~/.sophon/config/cli.json; the v2 pinned-input surface is unchanged underneath. If a crash ever leaves your terminal in a broken state, sophon doctor --reset-terminal restores it.

Key bindings in chat

Key Action
↩ Send (with a picker open: select)
⌥↩ Insert newline — full-screen only; in the pinned/classic fallback use ⇧↩
↑ / ↓ Walk input history; with a picker open: move the selection
Wheel / PgUp / PgDn Scroll the transcript (full-screen)
Home / End Jump the transcript to top/bottom when the draft is empty; otherwise cursor movement
o Expand/collapse the newest folded tool-output card (empty draft)
⌃W / ⌃U Delete previous word / clear current line
⌃C Clear draft, or cancel the running task; twice in quick succession exits
⌃T Attach an image
Tab Accept slash menu / mention completion; with an approval card up: focus it
A / R / E / S Approve / Reject / Edit / Skip a pending approval card (empty draft)

Discovery

  • Type / at column 0 → slash menu opens with fuzzy filter, ordered by SlashCommandCatalog.DisplayOrder (not registration order) so the most-used commands lead
  • /theme, /select and /tokens are full-screen intrinsics: offered in the menu and /help only while that surface owns the terminal, since the pinned and classic loops do not implement them
  • Type @ anywhere → file-mention popover with type-to-filter (@agent:/@session: categories are on the roadmap)
  • Multi-line paste auto-detected via bracketed paste

Themes

/theme opens a live-preview picker (Enter persists, Esc reverts). SOPHON_THEME=indigo-core|deep-void|graphite|daylight overrides everything; NO_COLOR=1 strips all color.

Opting out

Every surface layer has its own escape hatch, env always winning over cli.json: SOPHON_CLI_FULLSCREEN=0 / "fullScreen": false (back to pinned input), SOPHON_CLI_PINNED=0 / "pinnedInput": false (back to the classic prompt), SOPHON_CLI_V2=0 / "v2": false (legacy CLI).

Terminal title: the chat REPL names the terminal tab with a state glyph — ✦ Sophon when idle, an animated braille spinner while working, and ✦ <session title> - Sophon once the session is titled (default-on; suppressed when output is redirected / TERM=dumb / embedded terminal). Opt out with SOPHON_CLI_TERMINAL_TITLE=0 or "terminalTitle": false in cli.json.

For the full reference (slash commands, fallback chain, scripting, embedded-terminal degradation, troubleshooting, roadmap), see docs/CLI.md.

What you can do from the CLI

Every surface the Sophon Dashboard exposes is available as a sophon subcommand.

Area Command
Chat sophon (REPL), sophon chat
Sessions sophon sessions list\|get\|rename\|archive\|delete
Agents sophon agents list\|get\|create\|soul
Models & providers sophon models list\|add\|test\|remove, sophon models github-copilot login
Approvals (HITL) sophon approvals pending\|decide\|edit\|history\|watch
Tasks / runs / plans sophon tasks active\|recent\|cancel\|watch, sophon runs active\|get\|cancel\|wait, sophon plans cancel
Channels sophon channels list\|add\|test\|enable\|disable\|remove
Connections (OAuth + keys) sophon connect list\|service\|test\|revoke
Skills & marketplace sophon skills list\|install\|uninstall\|generate\|marketplace
Workflows sophon workflows list\|create\|execute\|versions\|rollback\|test-node\|check-credentials
Cron sophon cron list\|add\|pause\|resume\|trigger\|history\|delete
Documents & memory sophon docs upload\|ask\|summarize\|search, sophon memory list\|add\|search\|daily-logs
Voice sophon voice providers list\|add, sophon voice transcribe, sophon voice runtime start\|stop
Nodes (remote desktop) sophon nodes pair\|approve\|permissions\|command\|wait
MCP sophon mcp list\|add\|reconnect\|tools\|bundles
Webhooks sophon webhooks list\|create\|toggle\|history\|test
Insights & home sophon insights show, sophon home
Push notifications sophon push register\|preferences\|test
Canvas / ClaudeCode / PTY sophon canvas follow, sophon claude-code stream, sophon pty open
Ops (admin) sophon ops status\|logs\|doctor\|action
CLI config sophon config get\|set\|list\|path\|validate\|reset

Run sophon --help for the full tree, or sophon <command> --help for any subcommand.

Inside the chat REPL

The chat REPL accepts normal messages and slash commands:

sophon (default) > /plan            # show the current execution plan
sophon (default) > /tasks           # list active background tasks
sophon (default) > /approvals       # list pending approval gates
sophon (default) > /cancel          # cancel the running task or plan
sophon (default) > /attach ./a.pdf  # upload + send a file in your next message
sophon (default) > /save 1          # download the Nth attachment from the last batch
sophon (default) > /new             # start a fresh session
sophon (default) > /resume <id>     # resume an existing session
sophon (default) > /help            # full slash-command list

Press Ctrl+C once to cancel the currently running task or plan without leaving the REPL; press it again within two seconds to exit.

Configuration

The CLI stores its own settings at ~/.sophon/config/cli.json. Inspect or change them with:

sophon config list
sophon config set gatewayUrl https://sophon.example.com
sophon config path

Environment overrides (take precedence over the config file):

Variable Purpose
SOPHON_GATEWAY_URL Gateway base URL
SOPHON_AUTH_TOKEN Bearer token used by the CLI
SOPHON_FORMAT Default output format (table, json, yaml, csv)

The CLI and the Sophon Gateway/Dashboard share ~/.sophon/ as a user-owned data directory — see the Sophon data directory reference.

License

Proprietary — Copyright (c) Buildersoft LLC. Use of this software is governed by the Sophon EULA. See LICENSE.txt.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.0.0 127 9/19/2026
1.15.0 235 7/29/2026
1.14.0 145 7/14/2026
1.13.5 147 7/9/2026
1.13.0 135 7/5/2026
1.12.0 145 6/23/2026
1.11.0 156 6/12/2026
1.10.0 148 6/4/2026
1.9.1 141 5/22/2026
1.9.0 133 5/22/2026
1.8.0 157 5/14/2026
1.7.0 137 5/14/2026
1.6.0 142 5/10/2026
1.5.0 143 5/10/2026
1.4.0 140 5/10/2026
1.3.0 147 4/25/2026
1.2.0 131 4/21/2026
1.1.0 135 4/17/2026
1.0.0 142 4/17/2026