Claw Code in C# but even better and with OpenAI and NVIDIA NIM Support
SaferSkills independently audited ClawCodeSharp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
CodeSharp is a terminal-first coding assistant for developers who want fast answers, clean repo navigation, and a CLI that feels built for real work instead of demos.
Built as a modern C#/.NET 10 take on the original Claw Code, it brings Anthropic, NVIDIA, OpenAI, and xAI models into a sharper REPL with live streaming, readable markdown rendering, colored diff previews, clearer tool feedback, and smoother code-reading and editing workflows.
It also adds practical features that matter in daily use: slash-command suggestions, guided config management, pinned full-screen REPL layout, parallel read-only repo analysis, smarter search output with context, and better handling for queued prompts, retries, and interrupt flow.
Requirements:
global.json currently pins SDK 10.0.100 with rollForward: latestFeature.
#### macOS (Homebrew)
brew install --cask dotnet-sdk
dotnet --list-sdksIf dotnet is not on your PATH afterwards, add the default install location for your shell:
export PATH="/usr/local/share/dotnet:$PATH"On Apple Silicon machines installed via Microsoft's pkg installer, you may instead need:
export PATH="/opt/homebrew/share/dotnet:$PATH"#### Linux / Windows
Install the .NET 10 SDK from the official Microsoft instructions:
dotnet restore CodeSharp.sln
dotnet build CodeSharp.slnInteractive REPL:
dotnet run --project src/CodeSharp.CliSingle prompt:
dotnet run --project src/CodeSharp.Cli -- "Explain this codebase"For a single self-contained binary on macOS Apple Silicon:
dotnet publish src/CodeSharp.Cli/CodeSharp.Cli.csproj \
-c Release \
-r osx-arm64 \
--self-contained true \
/p:PublishSingleFile=trueThe published binary will be written to:
src/CodeSharp.Cli/bin/Release/net10.0/osx-arm64/publish/For Intel macOS, Linux, and Windows examples, see Standalone Binary below.
<p> <img src="assets/showcase/screen0.jpg" alt="CodeSharp REPL screenshot 1" width="49%" /> <img src="assets/showcase/screen1.jpg" alt="CodeSharp REPL screenshot 2" width="49%" /> </p>
EnterPlanMode and ExitPlanMode itself, or you can use /plan and /plan approve. In planning mode all mutating tools are blocked; the assistant produces a structured plan with Goal, Assumptions, Steps, Risks, and Validation sections.Agent now spawns an isolated ConversationRuntime per call. subagent_type: "Explore" maps to a read-only analysis agent, "Plan" runs in planning mode, and the default runs a focused task agent. Each has its own session and type-specific system prompt./commit — AI-generates a conventional commit message from staged changes, shows a preview, and commits on confirmation./diff — shows git diff --stat plus a colored inline diff with green additions and red removals, truncated at 200 lines./branch — list branches, create and switch with /branch <name>, or checkout an existing one with /branch checkout <name>./worktree — list, add, and remove git worktrees directly from the REPL./pr — generates a PR title and body with the model, previews them, and calls gh pr create on confirmation.CODESHARP.md, .codesharp/MEMORY.md, and all .codesharp/memory/*.md files are included in the system prompt automatically at session start./memory — lists memory files; /memory <name> shows the content of a specific file. Edit files in .codesharp/memory/ to persist facts across sessions./compact summarizes old messages via the model and rebuilds the session history to stay within context limits while preserving recent turns.read_file, glob_search, grep_search, find_symbol, find_references, and task tools run in parallel within a single assistant step.find_symbol and find_references cover C#, TypeScript, Python, C/C++, and HTML across the whole workspace without a language server./symbols <name> and /refs <name> — symbol and reference search directly from the REPL with formatted output.glob_search and grep_search respect .gitignore and skip bin, obj, .git, node_modules, and similar noise folders./ shows live-narrowing command completions.Ctrl+C cancels the active turn first; a second interrupt exits./export [path] saves the full session transcript as a markdown file.The system prompt now follows the same structure as Claude Code's leaked guidelines:
path:line format.EnterPlanMode, what to produce, when to exit.CodeSharp.sln
src/
├── CodeSharp.Core/ # Core runtime, session, permissions
├── CodeSharp.Api/ # HTTP client, API providers
├── CodeSharp.Tools/ # Tool registry and execution
├── CodeSharp.Plugins/ # Plugin management
├── CodeSharp.Lsp/ # LSP integration
├── CodeSharp.Commands/ # Slash commands
├── CodeSharp.Cli/ # Main CLI application
└── CodeSharp.Server/ # HTTP server for sessionsdotnet run --project src/CodeSharp.Clidotnet run --project src/CodeSharp.Cli -- "Explain this codebase"dotnet run --project src/CodeSharp.Cli -- --provider nvidia -p "What does this function do?"The default model is currently moonshotai/kimi-k2.5, routed through the NVIDIA provider unless you override it.
You can build a standalone single-file binary with dotnet publish.
dotnet publish src/CodeSharp.Cli/CodeSharp.Cli.csproj \
-c Release \
-r osx-arm64 \
--self-contained true \
/p:PublishSingleFile=truedotnet publish src/CodeSharp.Cli/CodeSharp.Cli.csproj \
-c Release \
-r osx-x64 \
--self-contained true \
/p:PublishSingleFile=truedotnet publish src/CodeSharp.Cli/CodeSharp.Cli.csproj \
-c Release \
-r linux-x64 \
--self-contained true \
/p:PublishSingleFile=truedotnet publish src/CodeSharp.Cli/CodeSharp.Cli.csproj \
-c Release \
-r win-x64 \
--self-contained true \
/p:PublishSingleFile=trueThe published binary ends up under:
src/CodeSharp.Cli/bin/Release/net10.0/<RID>/publish/If you prefer a framework-dependent build instead of bundling the runtime, replace --self-contained true with --self-contained false.
CodeSharp now uses a few distinct config and state files. They serve different purposes:
~/.codesharp/settings.jsonGlobal defaults for the CLI. This is where codesharp config stores your preferred provider, model, and provider-specific API keys.
./.codesharp/settings.jsonProject-local config created by codesharp init. Repo-local settings including plugin config.
./CODESHARP.mdProject instructions for the agent. Included in the system prompt at session start. Define coding conventions, repo context, or workflow notes here.
./.codesharp/MEMORY.mdMemory index. Each line should be a pointer to a memory file. Included in the system prompt automatically.
./.codesharp/memory/*.mdIndividual memory files (user, feedback, project, reference types). All .md files in this folder are loaded into the system prompt at session start. Use /memory in the REPL to browse them.
./.codesharp/sessions/session-*.jsonSaved conversation/session files for prompt and REPL runs.
./.codesharp-todos.jsonTodo state written by the internal plan/todo tool.
CLI flags still win over stored defaults. For example, --model and --provider override values from ~/.codesharp/settings.json for that run.
{
"Model": "moonshotai/kimi-k2.5",
"Provider": "nvidia",
"ApiKeys": {
"Nvidia": "nvapi-..."
}
}Run this once inside a repo to create the local project files:
codesharp initThat creates:
.codesharp/settings.jsonCODESHARP.mdInteractive menu:
codesharp configNon-interactive examples:
codesharp config show
codesharp config set provider nvidia
codesharp config set model moonshotai/kimi-k2.5
codesharp config set api-key nvidia
codesharp config unset model| Flag | Description |
|---|---|
-p | Run a single prompt and exit |
--model | Model to use (default: moonshotai/kimi-k2.5) |
--provider | API provider: anthropic, nvidia, openai, xai |
--permission-mode | Permission mode: read-only, workspace-write, danger-full-access |
--allowedTools | Comma-separated list of allowed tools |
--output | Output format: text, json |
--version | Show version |
--help | Show help |
| Command | Description |
|---|---|
/help | Show all commands |
/status | Model, mode, permissions, token usage, git branch |
/model [name] | Show or switch the active model mid-session |
/permissions [mode] | Show or switch permission mode |
/plan | Enter planning mode (blocks all mutating tools) |
/plan deep | Enter deep planning mode |
/plan approve | Approve plan and return to execute mode |
/plan exit | Exit planning mode without approving |
/compact | Summarize old messages to reduce context size |
/diff | Show git status and colored diff |
/commit | AI-generate a commit message and commit |
/branch [name] | List branches or create and switch to a new one |
/branch checkout <name> | Switch to an existing branch |
/worktree | List git worktrees |
/worktree add <path> [branch] | Create a new worktree |
/worktree remove <path> | Remove a worktree |
/pr | Generate a PR title/body and open via gh pr create |
/symbols <name> | Find symbol declarations across the workspace |
/refs <name> | Find symbol references across the workspace |
/memory | List memory files in .codesharp/memory/ |
/memory <name> | Show the content of a specific memory file |
/cost | Show token usage and estimated cost breakdown |
/export [path] | Save session transcript as markdown |
/clear --confirm | Clear session history |
/config | Interactive config menu |
/version | Show version |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.