jcode Commands: Slash Commands and Keybindings Explained

If you’ve only just installed jcode, this page is your reference for actually driving it: every typed command you can run inside a session, plus the default keyboard shortcuts. Nothing here assumes you’ve used a terminal coding tool before.

This page is part of the Using jcode guide; if you haven’t installed jcode yet, start with the installation guide instead.

Two ways to control a session

Inside a jcode session, you control what happens in one of two ways: typing a slash command, or pressing a keyboard shortcut.

A slash command is a short instruction that starts with /, like /model or /resume. A keybinding is a key or combination of keys, like Ctrl+G, that does something right away without you typing anything.

Press / at any point and a search box opens over every command available in your installed version. Type a few letters of what you’re trying to do and the list narrows as you go. If you only remember one command, remember /help (also written /? or /commands).

It always shows the exact, current list for the version you have installed, because commands change between releases and any skills you’ve added bring their own commands too.

A skill installed for a particular kind of project might add something like /optimization to the list on top of the built in commands below.

Slash command reference

The tables below group commands by what you’re trying to do. A few commands have short aliases; those are noted where they matter.

Models and accounts

CommandWhat it does
/modelSee which models are available, or switch the one you’re using
/effortCheck or change how much reasoning effort the model puts in; /fast is a shortcut that flips a faster, lower effort mode on or off
/login / /logoutConnect a new provider account, or disconnect one you’ve already linked
/accountSwitch between accounts you’ve already connected, useful if you have more than one subscription
/usageCheck how much of your provider’s usage limit you have left

Sessions and context

CommandWhat it does
/resumeOpen a list of earlier sessions and pick one back up
/forkBranch the current conversation into a new window, optionally starting it with a prompt
/transferCondense the conversation into a short handoff and start a new session from that summary
/compactSummarize older parts of the conversation to free up room in the context window
/rewindMove the conversation back to an earlier message
/clear / /clsErase the conversation history, or just clear what’s on screen without touching the saved history
/save / /renameBookmark the current session under a name, or give it a new one
/info / /contextCheck token and session details, or view the full context snapshot

Building, testing, and working with agents

CommandWhat it does
/planAsk jcode to respond with a plan only, shown as its own card instead of making changes right away
/test / /reviewCheck the current work, or start a one time session focused on reviewing it
/commit / /commit-pushGroup changes into clear commits; /commit-push also pushes them afterward
/todosShow the todo card for the current session
/subagentStart a subagent focused on one specific task
/swarmTurn multi agent swarm support on or off
/skillsList which skills are currently loaded, along with any jcode suggests for the project
/memoryTurn long term memory on or off

Interface and troubleshooting

CommandWhat it does
/diffCycle how diffs are shown: hidden, inline, full, pinned in place, or as a file
/thinking-displayChoose whether you see all of the model’s thinking, only the current step, or none of it
/hotkeysList every shortcut alongside how often you’ve personally used it
/keysCheck for shortcuts that conflict with your terminal or operating system; run /keys refresh to scan again after making changes
/terminal-setupSet up your terminal so Shift+Enter adds a new line instead of sending your message
/configView or edit jcode’s configuration
/reload / /updateReload the newest binary already on your machine, or fetch an update in the background
/quitClose jcode

Default keyboard shortcuts

Most actions above also have a keyboard shortcut, and a handful of shortcuts exist only as shortcuts, with no matching slash command. Windows and Linux share one set of defaults; macOS differs in a few places, mainly because Option is already used for word navigation in many macOS terminals.

What it doesWindows / LinuxmacOS
Send your input right awayEnterEnter
Queue input until the current turn finishesShift+EnterShift+Enter
Scroll one line up or downCtrl+Shift+K / Ctrl+Shift+JCtrl+Shift+K / Ctrl+Shift+J
Scroll one page up or downAlt+U / Alt+DAlt+U / Alt+D
Jump to the previous or next promptCtrl+K / Ctrl+JCtrl+K / Ctrl+J
Set or clear a scroll bookmarkCtrl+GCtrl+G
Switch to the next or previous modelCtrl+Tab / Ctrl+Shift+TabCtrl+Tab / Ctrl+Shift+Tab
Accept a suggested fallback model and resendCtrl+YCtrl+Y
Raise or lower reasoning effortAlt+Right / Alt+LeftCmd+Right / Cmd+Left
Toggle centered layoutAlt+CAlt+C
Move between workspacesAlt+H / Alt+J / Alt+K / Alt+LAlt+H / Alt+J / Alt+K / Alt+L
Open the session pickerAlt+RCmd+B
Start a new sessionAlt+Shift+;Cmd+Shift+;
Show or hide the side panelAlt+MAlt+M
Toggle selection modeAlt+YAlt+Y
Show or hide the diagram paneAlt+TAlt+T
Lock scrolling while typingAlt+SAlt+S
Cycle the diff displayAlt+GAlt+G
Show or hide the info widgetAlt+IAlt+I
Show or dismiss the todo cardAlt+XAlt+X
Focus the swarm panelAlt+NAlt+N

Changing a shortcut

Every shortcut in the table above can be reassigned. Open ~/.jcode/config.toml (or the file at $JCODE_HOME/config.toml if you’ve set that variable) and add or edit a [keybindings] section.

Binding names aren’t case sensitive, so alt+m and ALT+M work the same way. To turn a shortcut off completely, set it to an empty string, none, off, or disabled.

[keybindings]
open_resume = "alt+r"
side_panel_toggle = "alt+m"
new_terminal = ""  # turned off

Run /hotkeys after saving to confirm the change took effect. If a shortcut still doesn’t do anything, run /keys refresh next, which rescans for conflicts with your terminal or operating system.

When a shortcut doesn’t work

Two problems come up often enough to call out on their own.

Shift+Enter sends your message instead of adding a line. Many terminal programs report Shift+Enter to running programs as plain Enter, so jcode never sees the Shift key at all. Run /terminal-setup for instructions specific to your terminal. In the meantime, pasting multiline text directly still works fine.

An Alt or Cmd shortcut does nothing. Your terminal program or window manager may be catching the key combination before jcode ever sees it. Run /keys to check for known conflicts, then change either the terminal’s shortcut or jcode’s binding, whichever is easier to give up.

On macOS specifically, jcode uses Cmd for several session and effort shortcuts, since Option is commonly reserved for moving between words in the terminal.

Keep this list current

Commands and shortcuts do change between releases, and this page can fall behind. Whatever version you’re running, /help and /hotkeys inside jcode itself always reflect exactly what’s installed, local configuration included. For the version currently shipping, see jcode’s official commands documentation.