skillsync
Docs/Skillsync CLI

skl command reference

Every skl command and flag.

These docs cover the current Skillsync CLI. Local session support is powered by the open-source txcript project.

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.

OptionWhat 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
OptionWhat 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.

Ask a question and get an answer that cites your sessions. See Search.

skl search "why did we drop the retry?"
OptionWhat 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.
--jsonPrint 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
OptionWhat it does
--from <AGENT>Look in one tool's sessions only.
--no-pagerPrint 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
OptionWhat it does
--with <AGENT>Continue in this tool instead of the session's own.
--from <AGENT>Look in one tool's sessions only.
--no-resumeWrite 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.

OptionWhat 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
OptionWhat 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.

CommandWhat it does
skl plugin installAdd the plugin to every supported tool found here. add also works.
skl plugin removeTake it out. uninstall and rm also work.
skl plugin statusWhich tools can take the plugin, and which have it. --json prints JSON.
OptionWhat it does
--agent <AGENT>Only claude, codex or opencode. Repeat it for more than one.
-f, --forceAlso replace or remove the plugin the Skillsync app installed.

skl keys

Run search on your own keys instead of your plan.

CommandWhat it does
skl keysShow what search runs on. --json prints JSON, never the keys.
skl keys setSave your keys. Each is tested before it's kept.
skl keys testTest the saved keys again.
skl keys offForget them and go back to your plan. rm also works.

skl keys set takes:

OptionWhat 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-answersKeep 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
OptionWhat it does
--workspace <SLUG>Share with this workspace. Repeat it for each one. The list you pass replaces the old one.
--privateRemove every workspace share.
--from <AGENT>Look in one tool's sessions only. Claude Chat and ChatGPT need it.
--dry-runShow 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.

CommandWhat it does
skl remote workspacesThe workspaces you belong to. ws also works.
skl remote listYour 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.

OptionOnWhat it does
--workspace <SLUG>listList what members shared into this workspace instead.
--from <AGENT>listOne tool's sessions only.
-n, --limit <N>listAt most this many, from 1 to 50. The default is 20.
--jsonlist, workspacesPrint JSON.
--with <AGENT>continueContinue in this tool instead of the session's own.
--metadata <SPEC>continueOptions for the tool you're continuing into, as key=value.
-y, --yesdeleteSkip the confirmation.

Skills

skl skill is the same command. See Skills.

CommandWhat it doesOptions
skl skills listSkills 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

CommandWhat it does
skl initSign in and install shell completions. Safe to run again.
skl loginSign 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 logoutSign out and remove your saved login.
skl whoamiShow who's signed in.

If SKL_TOKEN is set, skl uses it instead of your saved login.

Setup

CommandWhat it does
skl mcpRun 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 updateInstall the latest release.
skl guidePrint 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.