Skip to content

Keyboard

Shortcuts

Everyone learns Esc. These are the rest — all checked against Claude Code itself, not copied off a blog.

The three to learn first

If you remember nothing else.

  • Esc Esc
    Stop Claude mid-action The moment Claude starts doing something you did not intend.
  • Esc thenEsc Esc thenEsc
    Clear the input box Your half-written prompt has turned into a mess and you want a clean line.
  • Shift +Tab Shift +Tab
    Cycle permission mode Starting an exploration (plan) or letting an agreed plan run (accept edits). On older Windows setups without VT mode, this is Meta+M instead.

Writing the prompt

Composing, searching, pasting.

  • Ctrl +J Ctrl +J
    Start a new line without sending Any prompt longer than one sentence.
  • Ctrl +R Ctrl +R
    Search your prompt history "What did I type last week that worked?" Inside the search, Ctrl+S cycles the scope: this session → this project → everywhere.
  • Ctrl +S Ctrl +S
    Park the half-written prompt You are three sentences into a prompt and need to go check something.
  • Ctrl +G Ctrl +G
    Edit the prompt in your real editor Writing anything long or carefully structured.
  • Ctrl +V Alt +V
    Paste an image Anything visual. Annotate the screenshot first and it works even better. Ctrl+V, not Cmd+V — macOS keeps Cmd+V for its own paste. Windows and WSL use Alt+V. On WSL both Ctrl+V and Alt+V work.
  • Option +T Alt +T
    Toggle thinking for the next turn One hard question in the middle of otherwise simple work.
  • Ctrl +_ Ctrl +_
    Undo in the input box You deleted half a prompt by accident.

Seeing what happened

What Claude did and what it plans to do.

  • Ctrl +O Ctrl +O
    Toggle the full transcript You want to know what it actually did, not the summary.
  • Ctrl +T Ctrl +T
    Toggle the task checklist Any multi-step task, before it gets far.

Running the session

Long jobs, models, the terminal.

  • Ctrl +B Ctrl +B
    Send the running job to the background A long build, test run, or search you do not want to sit and watch.
  • Option +P Alt +P
    Switch model Between tasks — rarely a good idea mid-task.
  • Option +O Alt +O
    Toggle fast mode Straightforward work where you would rather have speed than depth.
  • Ctrl +Z Ctrl +Z
    Step out to the shell without quitting You need the terminal for one command and do not want to lose the session. Terminal-level shortcut (Unix SIGTSTP), not a Claude Code binding. Windows has no direct equivalent.

The keys are the same on both systems — only the modifier's name changes (macOS calls Alt Option). Run /keybindings in any session to see exactly what is bound on your machine.

create-sandbox — build a TypeScript API sandbox from C# or Postman, end-to-end

← Skills Built at NBG

Slash command /create-sandbox

build a TypeScript API sandbox from C# or Postman, end-to-end

End-to-end pipeline for building a TypeScript implementation of an existing . Translate C# types and controllers to TypeScript (or infer types from a Postman collection), design the sandbox architecture, scaffold the multi-sandbox infrastructure, then implement service methods one at a time with integration + contract tests generated and run automatically.

advanced ⏱ ~1-2 days of manual scaffolding per API

create-sandbox is the team’s end-to-end pipeline for spinning up a TypeScript implementation of an existing . The sandbox is a working backend stub the front end can develop against, integration tests can hit, and contract checks can validate — without waiting on the real backend to be deployable, stable, or even finished.

Two entry points converge on the same workflow:

  • You have C# source — Claude reads the types and controllers and translates them
  • You have a Postman collection — Claude infers types and service stubs from the request/response examples

Either way, the output is a typed TypeScript service layer plus a multi-sandbox infrastructure you can run locally.

The eight capabilities

The ships as an 8-step lifecycle. You can run them in order, jump in at any step, or invoke a single capability standalone.

#CapabilityPurposeOutput
1Type TranslationC# types → TypeScriptgenerated-types.d.ts
2Controller TranslationC# controllers → service stubsgenerated-services/*.service.ts
3Sandbox DesignArchitecture design documentsandbox-design.md (no code)
4Sandbox InfrastructureMulti-sandbox runtime scaffoldsrc/sandbox/ (7 files)
5Method ImplementationImplement ONE service method per callUpdated .service.ts
6Postman Type InferencePostman collection → TypeScript typesgenerated-types.d.ts
7Postman Service GenerationPostman collection → service stubsgenerated-services/*.service.ts
8Endpoint TestingGenerate and run integration + contract testssrc/tests/endpoints/*.test.ts

Typical flow: 1 → 2 (or 6 → 7 from Postman) → 3 (design doc) → 4 (infrastructure) → 5 + 8 repeated per method.

When you reach for it

Concrete triggers, lifted straight from the skill’s usage catalogue:

  • “Translate the C# types in ./src/Models to TypeScript” — Capability 1
  • “Generate TypeScript services from my C# controllers” — Capability 2
  • “Design a sandbox for the services in ./services” — Capability 3
  • “Implement the sandbox infrastructure based on docs/sandbox-design.md” — Capability 4
  • “Implement the GetUserInfo method” — Capability 5
  • “Generate types from my Postman collection” — Capability 6
  • “Generate service stubs from my Postman collection” — Capability 7
  • “Run the tests for getUserInfo” — Capability 8

If you’re not building or extending a sandbox of an existing API, this isn’t the skill — try /team or plain instead.

Rules the skill enforces

A few non-negotiables baked into the skill that are easy to miss if you skim the docs:

  • Never modify tsconfig.json to suppress errors. No noUnusedParameters: false, no // @ts-ignore, no any-typed escape hatches. Genuine fixes only.
  • Capability 5 implements exactly one method per invocation. Bulk requests are denied. After each method, Swagger JSDoc is updated and tests are generated + run automatically.
  • Always use absolute paths ($PWD/...) for the script invocations — relative paths resolve incorrectly under npx tsx.
  • Capabilities 6 → 7 flag alignment is critical. If you used --envelope "payload" in 6, you must use --envelope in 7. If you used --folders "Account,Cards" in 6, the same in 7. Mismatched flags produce subtly wrong type names that only surface at build time.

Required environment variables

Capabilities 4 and 5 require:

SANDBOX_APP_ID=<app-name>          # Application identifier
SANDBOX_DATA_DIR=./data/sandboxes  # Base directory for sandbox files

No fallback values. The application fails at startup if either is missing — by design, per the team’s no-silent-defaults rule.

Limitations to know up front

  • Translation covers type definitions only — C# method bodies are not translated. Method implementation happens in Capability 5, one method at a time.
  • The sandbox is file-based and single-threaded — for development and integration testing, not production load.
  • WebSocket and streaming endpoints are not supported by the test generator.
  • Contract validation is structural (field presence and types), not semantic — business-rule validation is your responsibility in Capability 5.

Going deeper

The full SKILL. and the eight capability-specific guides (01-type-translation.md through 08-endpoint-testing.md) live in the upstream repo. The eight guides go into detail on naming conventions, generated code structure, entity design, manager patterns, and test scope modes — read them when you hit the capability you’re about to invoke.

Next skill →

deploy — deploy to NBG Azure

Automates end-to-end of NBG Azure-hosted web applications via the Azure Management Portal REST — first-deploy (provision), auth-setup (identity team credentials + proxy + Kafka), and redeploy (rebuild + push).