Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Sleeping ClankerNew to Visual Studio Code? Get it now.
Sleeping Clanker

Sleeping Clanker

Bloodycub

| (0) | Free
Queue Claude Code tasks and goals per project and run them unattended, waiting out usage limits. Native UI over the bundled sleeping_clanker Python core.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Sleeping Clanker (VS Code)

Queue Claude Code tasks and goals from VS Code and let them run unattended. When a subscription usage limit is hit, the runner waits for the reset and resumes the same Claude session.

The extension is a thin native UI over the bundled sleeping_clanker Python core (stdlib only). It uses one locked-down webview for the Task view: no remote content, only its own script. It opens no network listener and sends no telemetry.

Requirements

  • Windows, Python 3.11+ (py -3 or python, or set claudAutopilot.pythonPath).
  • Claude Code (claude.exe) installed and logged in.

One queue per project

Each window shows and runs only its own project's queue: the window's first folder. Two windows on two projects have two independent queues and runners. Show All Projects (the layers button in the Queue title) groups every project's queue; this window's project comes first. Item actions work on any project's items, and each project node has its own Start/Stop. A runner started for another project is still a child of this window and stops when this window closes.

If the old shared queue holds tasks for this folder, the extension offers once to move them.

Several queues per project (v0.3)

New Queue… (the Queue view's … menu, or the + Add menu) makes a second queue for the same project, with its own runner. With two or more queues the view shows one node per queue (Main is the original one) with its own ▶/■ and + buttons; adding then asks which queue (the last used comes first). Start/Stop from the status bar or the palette asks for a queue, or All queues. Two queues work in the same folder at the same time, so give them tasks on different files (a warning says so once). Remove Queue (right-click an empty, stopped queue) moves its folder to lanes\.removed.

Task view (0.4.0)

Double-click a task (or right-click → Open Task View, or the inline button on a running task) to open its Task view beside the editor, laid out like the Claude Code and Codex chat panels:

  • a header with the task name, a colored status pill, the profile, the queue, the folder and a Raw log link;
  • your prompt (and every reply you sent) as a chat bubble on the right; long prompts fold after 12 lines;
  • Claude's answers rendered as Markdown: tables, bold, lists, inline code, code blocks;
  • each tool call as one compact row (Grep TODO in C:\code\…, Read notes.md) with a status dot and a short result (14 lines); click a row to see the result (up to 4 KB);
  • red rows for permission denials, a yellow "Paused until HH:MM" row for usage limits, stderr folded;
  • per attempt a divider (Attempt 2 · time · model · session) and a footer (✓ success · 11 turns · $0.572 · completed); the TASK_DONE / TASK_BLOCKED / GOAL_… line becomes a badge (✓ Done, ✗ Needs you: …, ↻ Continuing);
  • while the task runs, a "Working…" row with the elapsed time; the view follows new output only when you are already at the bottom;
  • a reply box at the bottom (Enter sends, Shift+Enter is a new line, with a profile dropdown). It works when the task has stopped (blocked, done, failed or cancelled) or is paused, and sends exactly like Reply…; a reply to a paused task un-pauses it (one queued reply at a time: Edit reply… changes it). The box grows when you resize it and the conversation keeps its last lines visible above it;
  • 📎 Add picture or file at the left of the bottom bar: pick files (e.g. a screenshot of the error, a log); their paths are listed in your reply and Claude opens them (pictures too);
  • ▶ Start now on a pending task: it moves to the front of its queue and the runner starts (a busy runner finishes its current task first);
  • (0.4.1) when Claude blocked with a question and numbered options (OPTION 1 (recommended): … lines above TASK_BLOCKED: …), the question and one button per option above the reply box: the recommended option first, as the primary button with a Recommended tag, each option's detail as a muted second line. A click sends Option <n>: <label> the same way as the reply box (an option that mentions a shell, git, PowerShell or a komento resumes with shell-read unless you picked a profile in the dropdown). Other… puts the cursor in the reply box. The OPTION lines are not repeated in Claude's answer while they are buttons.
  • (0.4.3) an open Task view comes back after Developer: Reload Window. The view keeps only the task id, its project and queue (and your unsent reply). The extension checks them with the core and shows "This task is no longer available" when the task is gone.
  • (2026-10-21) ADHD mode: pick it in the View dropdown next to Raw log. The view then shows only your messages, Claude's answers, the badges (✓ Done, ✗ Needs you), pauses and "Working…". Tool calls, attempt lines, interim messages, denials, CLI notes and stderr fold into ▸ N hidden steps rows; a click opens one in place. A long question, badge or "blocked:" line shows its first sentence with …; a click (or the tooltip) shows the rest. The choice applies to every Task view, including new ones and after a restart. Full chat shows everything again.

The webview is locked down: a strict Content-Security-Policy, only the extension's own script (with a fresh nonce), no remote content, no command links. Claude's text is escaped before the Markdown is rendered, so HTML in an answer is shown as text. Links open in the browser only for https://; (0.4.1) an http:// link is shown as plain text with its address, and an image is shown as the text alt (image: url) (nothing is loaded). Very long or deeply nested answers are rendered safely (deeper than 20 levels, or beyond 20 000 characters on one line, the rest is plain text).

Open Raw Log (right-click, or Raw log in the view) opens the plain-text log as before: each attempt's header, Claude's text, ▶ tool calls with ↳ results, ⛔ denials, ⏸ usage-limit pauses, the result and any stderr. (0.4.0) The result line no longer repeats the final answer. Set claudAutopilot.taskView to text to make the double-click open the raw log instead. Long runs show the last 2 MB per attempt. A single click only selects the task.

Needs you: blocked tasks and Reply (v0.3)

Claude ends every task with TASK_DONE or TASK_BLOCKED: <what it needs>. A blocked task (or one that hit permission denials without finishing) gets a yellow question mark and Needs you; the status bar shows · N need you on a warning background, and the Sleeping Clanker icon in the sidebar shows the count as a badge. Reply… (inline on the task, right-click, or the goal bar) sends your answer: type it and press Enter, or press Enter on an empty box to write a long reply in an editor and click Send reply. You can switch the profile for the resumed session; when Claude said it needs a shell, shell-read is offered first. The task resumes the same Claude session when the runner reaches it. A task that needs ssh can only report blocked: no profile allows ssh.

(0.4.1) When Claude's question came with numbered options, Reply… (and the goal bar's Reply) first shows a list of them, the recommended one first and marked ★ Recommended, plus Write my own reply…, which opens the input box as before. Picking an option sends Option <n>: <label>; when the option mentions a shell, git, PowerShell or a komento, shell-read is first in the profile list.

(0.4.4) Auto-pick best — the box next to the profile dropdown in a Task view — answers such a question for you with the best (recommended) option, so a task that asks something at 02:00 keeps going. It is off by default: turn it on per chat, or for every new chat with claudAutopilot.autoPickBestOption. Each automatic answer is one note line in the chat (Auto-picked Option 1: …) and one >> line in the output channel. It never widens the task's permission profile (a manual click on a shell option still may), answers one question once, and stops after five automatic answers in a row until you reply yourself. Nothing is answered automatically unless that task's chat is open, and a free-text question (no options) always waits.

Use

  • Queue view: every task and goal with its status. Hover an item to see what is happening now and what happens next. Inline: Edit, Pause, Resume and Delete. Right-click: Show Details, Edit Task…, Retry, Cancel, Pause, Resume, Delete, Open Task View, Open Raw Log, Reply… and Open Run Log Folder. Deleting a running item cancels it first. A failed task shows a slashed circle; a blocked one a yellow question mark.
  • Status bar counts (2026-10-21): right of the main item, coloured counts — green $(pass) N complete, yellow $(question) N need your answer, red $(error) N failed, blue N not done yet (pending, running, waiting or paused). A count of 0 is hidden; a click opens the queue view.
  • Edit Task… (2026-10-21): change a task's text until it has started (pending, paused, waiting, or failed or cancelled before its first run). The text goes into an edit box at the top of the New Task panel (2026-10-26; no input box, no new editor): change it there and press Save (Ctrl+Enter) or Cancel edit (Esc). The task keeps its place in the queue. A started task has a session, so Claude already has its text: use Reply… instead.
  • Status groups: each queue is sorted into Questions (a task waits for your answer; always on top), Running, Not done yet (pending, paused), Errors and Complete (done or cancelled, newest first). Click a group's arrow to hide or show it; Complete starts hidden. Finished rows show when they ended (done 14:32, failed 10-20 09:05). This is display only: nothing is sent to Claude, so it costs no tokens. Setting claudAutopilot.groupByStatus (off = one flat list).
  • Delete: the trash button on a row. A done or cancelled task goes at once; anything else (or a task with subtasks) asks first. The trash button on Complete or Errors deletes the whole group after one confirmation.
  • Subtasks: the + on a task's row (or right-click → Add Subtask…) adds a small task under it, e.g. main task "cook" with "bake cookies" and "make ice cream". A subtask runs in the same folder with the same permissions, starts once the main task is done, and runs right after it, in the order you added them. Its prompt names the main task in one line. Deleting the main task deletes its subtasks; cancelling it cancels the unfinished ones. A + on a subtask adds to the same main task.
  • Add… (the + button, the status bar menu, or "Add with these files…" in the Explorer):
    • Task: a one-shot task.
    • Goal: Claude keeps working, round after round, until it reports the goal complete or blocked, or a cap is hit (default 50 rounds / 72 hours).
    • Files and folders: attach files or folders (read-only context) to a new task or goal.
    • Plan mode: a read-only task that only makes a plan.
    • Selection / Current file.
  • Defaults for + (0.4.4): the rows at the bottom of the Queue view. Click a row to preselect what + adds (Add), the permission profile (Permissions), the queue (Queue, only with two or more queues) and the goal caps (Goal caps). The choice is saved in your user settings, so the next + uses it without asking — with Add = Goal, Permissions = edits and the caps preselected, + asks only for the goal text. Every row starts at ask every time; Ask every time again in the section's menu clears them. Right-click the section to hide the rows; Sleeping Clanker: Defaults for +… in the Command Palette still changes them.
  • Status bar: Sleeping Clanker: idle | running 1 · 3 pending | waiting until 15:45. (0.3.3) When tasks are pending or waiting and no runner is running for their queue, it turns yellow: Sleeping Clanker: N pending — runner stopped, and its menu puts Start runner first. (0.4.4) While a task is running the text is green; yellow wins over green. While a goal is active, a second item shows Pursuing goal: … · 2d 5h 21m 33s; click it to Pause/Resume, Open Task View, Delete or Expand (Reply when the goal needs you).

Profiles:

  • safe (default, recommended): may read files and edit files only inside this folder; no shell, no web.
  • edits: may read and edit files; no shell commands, no web.
  • plan: read-only: makes a plan, changes nothing.
  • shell-read (v0.3.1, tightened in 0.3.2): like safe, plus a fixed list of read-only commands: exact git forms only (git status, git diff --stat, git log --oneline -20, ...) and the read-only cmdlets Get-ChildItem/ls/dir, Get-Content/cat/type, Select-String, Test-Path, Get-Item, findstr. Every other command (no grep, no git blame, no wildcard git forms) is denied; no deleting, no installs, no ssh, no web. The user guide lists the exact commands.

There is deliberately no setting for permission bypass.

Settings

Global settings (2026-10-21): the gear in the Queue view's title bar opens Language, Defaults for +…, four switches (Start runners automatically, Split a prompt that lists several tasks, Ask the model for each new task, Group the queue by status; a pick flips it in your user settings at once) and All settings… (the VS Code Settings editor, this extension only).

Chat settings (2026-10-21): the ⚙ Chat settings button at the right end of a Task view's bottom bar opens the chat box's own settings: ADHD mode (every chat), Auto-pick best in this chat, Auto-pick best in new chats (autoPickBestOption), Quick prompts… (opens quickPrompts), "What did you change?" text… (changesQuestion; empty = no button), Language and Global settings… (the Queue view's gear menu). (2026-10-26) ADHD mode is also a row in Global settings and the command Toggle ADHD Mode (Command Palette, Queue view ... menu).

Language: language = auto (default: VS Code's display language when it is English, Russian or Finnish, else English), en, ru (Русский) or fi (Suomi). Change it with Gear → Language, with Sleeping Clanker: Change UI Language…, or with Language under Other settings in the New Task panel (2026-10-26). All three save the same user setting. It is never an option of a task. The new language applies at once to the Queue view, the status bar, the hovers, the New Task panel and open Task views. The Settings page shows the choices by their own names. Command titles in menus and the Settings page follow VS Code's own display language (Configure Display Language):

  • Russian: VS Code has an official Russian language pack. If VS Code itself is not in Russian, one notice (only in the focused window) offers Switch VS Code to Russian. That opens VS Code's own display-language picker; VS Code installs the pack itself and asks to restart. Don't ask again stops the offer.
  • Finnish: VS Code has no Finnish language pack. Menu command names and the Settings page stay in VS Code's language; a one-time notice says so.

Sleeping Clanker's own setting descriptions (except Language) and some notifications are still English.

pythonPath, dataDir (the base folder; each project gets its own folder inside it), defaultProfile, refreshSeconds, maxTurns ((0.4.1) default 0 = the core's own caps, 100 turns per task and 40 per goal round; a value above 0 is passed as run --max-turns), itemTimeoutMinutes, maxLimitWaits, autoStartRunner (default on since 0.4.14; turn it off in the user settings; user settings only; starts the main queue plus every queue with pending or waiting tasks when VS Code starts, and (0.3.3) the target queue's runner after you queue a task or send a reply while it is not running; the Always start automatically button on the "queued" message turns it on), model, goalMaxRounds (50), goalMaxHours (72) and (0.3.3) logPolling (default off) and (0.4.0) taskView (chat, the default, or text: what a double-click opens), all under claudAutopilot.. (0.4.4) The Defaults for + rows write five more: defaultKind (ask, the default, or task, goal, plan, files), askProfile (default on; off = every new task gets defaultProfile without asking), defaultLane (empty = ask), askGoalCaps (default on; off = a new goal gets goalMaxRounds/goalMaxHours without asking) and showAddDefaults (default on = show the rows). (0.4.4) autoPickBestOption (default off; user settings only): what the Auto-pick best box of a newly opened Task view starts with. A chat whose box you clicked keeps your choice over the setting. (2026-10-21) askModel (default off): + asks each new task's model (Runner default, Opus, Sonnet, Haiku, Fable or any model id). Change Model… in a task's right-click menu (any status but running) sets the model of its next attempt; a task's own model wins over model and shows in its hover. (2026-10-21) splitTasks (default on): a New Task, Plan or Task-with-files prompt that lists several tasks is queued as one task per item in the same queue (they run one after another). A list is 2+ lines starting with 1./1) or -/* (bullets under other text only when that text says "tasks"), or 1. … 2. … on one line; each item needs 2+ words. The text around the list goes to every part. Goals, selections and prompt files are never split. Off = one prompt, one task. changesQuestion: every task prompt asks Claude for a short final message (the outcome in 1-3 lines, no file:line walkthrough). A done, failed or cancelled task's Task view shows a What did you change? button. The button sends this setting as a reply (default: "What did you change? List each file you modified as path:line, one line each on what and why."). Example: "claudAutopilot.changesQuestion": "List the changed files with their paths and the setting or option each change adds." Empty = no button. quickPrompts: the quick-prompt buttons above a Task view's reply box, shown whenever the task can take a reply (blocked, done, failed, cancelled or paused, with a session). A click sends that text as your reply with the profile in the dropdown; Shift+click puts it in the reply box to edit first. Up to 8 texts, each up to 2000 characters (default: "Continue where you stopped.", "Run the tests and report the pass and fail counts.", "Explain your last step in 1-3 lines."). Example: "claudAutopilot.quickPrompts": ["Continue where you stopped.", "Write a short summary for the changelog."] Empty list = no buttons.

The Sleeping Clanker output channel shows what matters: >> marks an event (task queued, runner started / stopped / exited, item 6f1b9503: pending -> running), !! ERROR an error. The background refresh calls (lanes, where, projects, ...) are logged only when they fail or take over 5 s; turn on claudAutopilot.logPolling to log every one while debugging.

Runners started from a window are stopped gracefully when that window closes. Stop Runner asks the runner to stop and, after 15 s, kills its process tree.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft