Run skl <command> --help for what your installed version takes.
Wherever a command takes a session, you can pass its id, the start of its id, or its exact title. Add #5-12 for messages 5 to 12. #7, #5- and #-10 work too.
<AGENT> is an id from Session compatibility, like claude_code or codex.
Sessions
These read the sessions on this machine. None of them need an account, except search.
skl list
List sessions, newest first.
| Option | What it does |
|---|---|
--from <AGENT> | One tool's sessions only. |
--cwd <DIR> | Sessions recorded in or under a directory. |
-n, --limit <N> | At most this many. |
--since <WHEN> | Started at or after a date, as YYYY-MM-DD or RFC 3339. |
--until <WHEN> | Started at or before a date. |
skl query
Find sessions that contain some text. With no pattern, open a picker.
skl query "relay bug"
skl query "relay bug" --cwd . --from opencode
| Option | What it does |
|---|---|
--from <AGENT> | One tool's sessions only. |
--cwd <DIR> | Sessions recorded in or under a directory. |
--git-branch <BRANCH> | Sessions on this git branch. |
--model <MODEL> | Sessions that used this model. |
--since <WHEN>, --until <WHEN> | Sessions started in a date range. |
--with <AGENT> | In the picker, continue your pick in this tool. |
skl search
Ask a question and get an answer that cites your sessions. See Search.
skl search "why did we drop the retry?"
| Option | What it does |
|---|---|
--cwd <DIR> | Only sessions recorded in this directory. |
--timeout <SECONDS> | How long to search. The default is 30, and 0 means no limit. |
--json | Print the result as JSON. |
skl view
Read a session. In a terminal it opens in a pager. Piped, it prints plain text.
skl view <session>
skl view <session>#5-12
| Option | What it does |
|---|---|
--from <AGENT> | Look in one tool's sessions only. |
--no-pager | Print straight to the terminal. |
In the pager, u, a, t and r hide or show your messages, the assistant's, tool calls and reasoning. ] and [ jump between messages, and / searches.
skl continue
Pick a session up in its own tool, or carry it into another. skl resume is the same command.
skl continue <session>
skl continue <session>#5-12 --with codex
skl continue ./session.json --with claude_code
| Option | What it does |
|---|---|
--with <AGENT> | Continue in this tool instead of the session's own. |
--from <AGENT> | Look in one tool's sessions only. |
--no-resume | Write the session and don't open the tool. |
--out <DIR> | Write the session under this directory and don't open the tool. |
--metadata <SPEC> | Options for the tool you're continuing into, as key=value. |
Continuing in the same tool resumes the original. Anything else writes a new session and leaves the original alone. The session can also be a file from skl export, or - for stdin.
skl crop
Cut a session down to the messages you want and save them as a new session. It opens an editor where you remove messages, and Enter saves.
| Option | What it does |
|---|---|
--with <AGENT> | Save the copy in this tool instead of the session's own. |
--from <AGENT> | Look in one tool's sessions only. |
skl export
Write a session to a file you can move to another machine. Continue it there with skl continue <file> --with <AGENT>.
skl export <session> --out session.json
| Option | What it does |
|---|---|
--out <FILE> | Write to this file instead of the terminal. |
--from <AGENT> | Look in one tool's sessions only. |
Plugin and keys
Not on Windows yet. See Search.
skl plugin
Have Claude Code, Codex and OpenCode check your past sessions before each prompt.
| Command | What it does |
|---|---|
skl plugin install | Add the plugin to every supported tool found here. add also works. |
skl plugin remove | Take it out. uninstall and rm also work. |
skl plugin status | Which tools can take the plugin, and which have it. --json prints JSON. |
| Option | What it does |
|---|---|
--agent <AGENT> | Only claude, codex or opencode. Repeat it for more than one. |
-f, --force | Also replace or remove the plugin the Skillsync app installed. |
skl keys
Run search on your own keys instead of your plan.
| Command | What it does |
|---|---|
skl keys | Show what search runs on. --json prints JSON, never the keys. |
skl keys set | Save your keys. Each is tested before it's kept. |
skl keys test | Test the saved keys again. |
skl keys off | Forget them and go back to your plan. rm also works. |
skl keys set takes:
| Option | What it does |
|---|---|
--search-base <URL> | Send the search key here instead of TypeSafe. |
--search-model <NAME> | The model the search asks for there. |
--answer-base <URL> | Send the answers key here instead of OpenAI. |
--answer-model <NAME> | The model that writes answers there. |
--no-answers | Keep no answers key. Searches find sessions and write no answer. |
Sync
These need you signed in. See Session sync.
skl sync
Put one session on Skillsync as a thread you own. skl remote sync is the same command. With no session, you get a picker.
skl sync <session>
skl sync <session> --workspace <slug> --workspace <slug>
skl sync <session> --private
| Option | What it does |
|---|---|
--workspace <SLUG> | Share with this workspace. Repeat it for each one. The list you pass replaces the old one. |
--private | Remove every workspace share. |
--from <AGENT> | Look in one tool's sessions only. Claude Chat and ChatGPT need it. |
--dry-run | Show what would be sent and send nothing. |
With neither --workspace nor --private, a first sync is private and a re-sync keeps its shares.
skl remote
Work with sessions already on Skillsync.
| Command | What it does |
|---|---|
skl remote workspaces | The workspaces you belong to. ws also works. |
skl remote list | Your synced sessions, newest first. ls also works. |
skl remote open <ref> | Open one in the browser. |
skl remote view <ref> | Print the Skillsync copy as text. |
skl remote continue <ref> | Pick it up on this machine. |
skl remote delete <ref> | Delete it from Skillsync. Your local session stays. rm also works. |
<ref> is the id of a session you synced from this machine, or the thread's slug from skl remote list or its URL.
| Option | On | What it does |
|---|---|---|
--workspace <SLUG> | list | List what members shared into this workspace instead. |
--from <AGENT> | list | One tool's sessions only. |
-n, --limit <N> | list | At most this many, from 1 to 50. The default is 20. |
--json | list, workspaces | Print JSON. |
--with <AGENT> | continue | Continue in this tool instead of the session's own. |
--metadata <SPEC> | continue | Options for the tool you're continuing into, as key=value. |
-y, --yes | delete | Skip the confirmation. |
Skills
skl skill is the same command. See Skills.
| Command | What it does | Options |
|---|---|---|
skl skills list | Skills installed on this machine. ls also works. | --scope user|project, --json |
skl skills search [query] | Skills on Skillsync you can install. browse also works. | --json |
skl skills show <ref> | Preview a skill without installing it. info also works. | --json |
skl skills install <ref> | Install a skill. add also works. | --scope user|project, -f, --force |
skl skills update [names] | Update skills you installed from Skillsync. | --dry-run |
skl skills sync [name] | Compare your workspace's skills with the ones here, or pull one. | --workspace <SLUG>, --project, --dry-run, -f, --force, --json |
skl skills upload [skill] | Publish a local skill. | --public, --project, --dry-run |
Account
| Command | What it does |
|---|---|
skl init | Sign in and install shell completions. Safe to run again. |
skl login | Sign in through the browser. --device signs in with a code on another device, and is picked for you over SSH. --browser forces the local browser. |
skl logout | Sign out and remove your saved login. |
skl whoami | Show who's signed in. |
If SKL_TOKEN is set, skl uses it instead of your saved login.
Setup
| Command | What it does |
|---|---|
skl mcp | Run the MCP server. --no-ask leaves out the ask_sessions tool. |
skl ignore <path> | Keep sessions under a path off the home screen and out of sync. skl ignore list shows the paths and skl ignore remove <path> drops one. |
skl completions <shell> | Print completions for bash, zsh, fish, elvish or powershell. |
skl update | Install the latest release. |
skl guide | Print instructions for an AI assistant driving skl. |
Running skl on its own shows who's signed in and your recent sessions.
skl also updates itself in the background, at most once a day. Set SKL_NO_UPDATE_CHECK=1 to turn that off.
skl ignore doesn't hide sessions from list, query, view or search.
Removed commands
skl memory, skl bookmark and skl remote set-default are gone as of 0.36. Older docs also mentioned skl upload, skl auto and skl watch, which don't exist. To put a session on Skillsync, run skl sync.