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
| Command | What it does |
|---|---|
/model | See which models are available, or switch the one you’re using |
/effort | Check 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 / /logout | Connect a new provider account, or disconnect one you’ve already linked |
/account | Switch between accounts you’ve already connected, useful if you have more than one subscription |
/usage | Check how much of your provider’s usage limit you have left |
Sessions and context
| Command | What it does |
|---|---|
/resume | Open a list of earlier sessions and pick one back up |
/fork | Branch the current conversation into a new window, optionally starting it with a prompt |
/transfer | Condense the conversation into a short handoff and start a new session from that summary |
/compact | Summarize older parts of the conversation to free up room in the context window |
/rewind | Move the conversation back to an earlier message |
/clear / /cls | Erase the conversation history, or just clear what’s on screen without touching the saved history |
/save / /rename | Bookmark the current session under a name, or give it a new one |
/info / /context | Check token and session details, or view the full context snapshot |
Building, testing, and working with agents
| Command | What it does |
|---|---|
/plan | Ask jcode to respond with a plan only, shown as its own card instead of making changes right away |
/test / /review | Check the current work, or start a one time session focused on reviewing it |
/commit / /commit-push | Group changes into clear commits; /commit-push also pushes them afterward |
/todos | Show the todo card for the current session |
/subagent | Start a subagent focused on one specific task |
/swarm | Turn multi agent swarm support on or off |
/skills | List which skills are currently loaded, along with any jcode suggests for the project |
/memory | Turn long term memory on or off |
Interface and troubleshooting
| Command | What it does |
|---|---|
/diff | Cycle how diffs are shown: hidden, inline, full, pinned in place, or as a file |
/thinking-display | Choose whether you see all of the model’s thinking, only the current step, or none of it |
/hotkeys | List every shortcut alongside how often you’ve personally used it |
/keys | Check for shortcuts that conflict with your terminal or operating system; run /keys refresh to scan again after making changes |
/terminal-setup | Set up your terminal so Shift+Enter adds a new line instead of sending your message |
/config | View or edit jcode’s configuration |
/reload / /update | Reload the newest binary already on your machine, or fetch an update in the background |
/quit | Close 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 does | Windows / Linux | macOS |
|---|---|---|
| Send your input right away | Enter | Enter |
| Queue input until the current turn finishes | Shift+Enter | Shift+Enter |
| Scroll one line up or down | Ctrl+Shift+K / Ctrl+Shift+J | Ctrl+Shift+K / Ctrl+Shift+J |
| Scroll one page up or down | Alt+U / Alt+D | Alt+U / Alt+D |
| Jump to the previous or next prompt | Ctrl+K / Ctrl+J | Ctrl+K / Ctrl+J |
| Set or clear a scroll bookmark | Ctrl+G | Ctrl+G |
| Switch to the next or previous model | Ctrl+Tab / Ctrl+Shift+Tab | Ctrl+Tab / Ctrl+Shift+Tab |
| Accept a suggested fallback model and resend | Ctrl+Y | Ctrl+Y |
| Raise or lower reasoning effort | Alt+Right / Alt+Left | Cmd+Right / Cmd+Left |
| Toggle centered layout | Alt+C | Alt+C |
| Move between workspaces | Alt+H / Alt+J / Alt+K / Alt+L | Alt+H / Alt+J / Alt+K / Alt+L |
| Open the session picker | Alt+R | Cmd+B |
| Start a new session | Alt+Shift+; | Cmd+Shift+; |
| Show or hide the side panel | Alt+M | Alt+M |
| Toggle selection mode | Alt+Y | Alt+Y |
| Show or hide the diagram pane | Alt+T | Alt+T |
| Lock scrolling while typing | Alt+S | Alt+S |
| Cycle the diff display | Alt+G | Alt+G |
| Show or hide the info widget | Alt+I | Alt+I |
| Show or dismiss the todo card | Alt+X | Alt+X |
| Focus the swarm panel | Alt+N | Alt+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.