Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>AI CLI SchedulerNew to Visual Studio Code? Get it now.
AI CLI Scheduler

AI CLI Scheduler

yamapan

|
3 installs
| (0) | Free
Schedule coding agents using your default terminal or custom launch profiles.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AI CLI Scheduler: terminal and clock

AI CLI Scheduler

Schedule your AI CLI. See what actually finished.

English | 日本語
Marketplace | Support | Source (access required)

VS Code 1.108+ · English / 日本語 · Version 0.1.1

Features | Getting started | Language support | Development

A separate VS Code extension for scheduling coding agents through your usual terminal environment. Inspired by Copilot Scheduler, but observes command completion rather than treating a submitted prompt as success.

Features

  • Copilot CLI, Codex CLI, Claude Code, and Claude Code via gw claude presets.
  • Custom executable, prefix arguments, prompt binding, environment variables, secret references, aliases and shell functions.
  • One-time and cron schedules, manual runs, cooperative stop and execution history.
  • The default VS Code terminal profile is used automatically. Direct execution and an explicitly selected shell are opt-in alternatives.
  • Japanese/English UI using VS Code theme colors.
  • GitHub Copilot Chat tools for reading and configuring schedules with confirmation.

Install the extension as yamapan.ai-cli-scheduler from Marketplace. The source repository remains private; GitHub documentation and issue links require repository access. See LICENSE for CC BY-NC-SA 4.0 and the copyright holder's supplementary terms. Third-party assets retain their own notices in THIRD_PARTY_NOTICES.md.

Getting started

Use a local VS Code 1.108 or later window with a trusted workspace. Install and authenticate your chosen CLI separately using its official instructions. This extension does not install agents or perform login.

Build the local VSIX using the development commands below, then choose Extensions: Install from VSIX... and select artifacts/ai-cli-scheduler-0.1.1.vsix. A first installation has no tasks. Existing enabled tasks resume when an already-configured extension starts.

For Marketplace installation, search for AI CLI Scheduler by yamapan in Extensions, or run code --install-extension yamapan.ai-cli-scheduler.

  1. Click the terminal-and-clock AI CLI Scheduler icon in the left Activity Bar. With no tasks, select Open Scheduler in the list. The gear button and AI CLI Scheduler: Open Scheduler in the Command Palette also open the management screen.
  2. Select or duplicate a CLI profile and review its executable, arguments and permissions.
  3. Create a task, enter its prompt and schedule, and explicitly approve its working folder.
  4. Save the task. New tasks are disabled; enable them only when ready for automatic execution.

If the icon is hidden, right-click the Activity Bar and enable AI CLI Scheduler. When upgrading from 0.1.0, VS Code may retain your previous view placement. Run View: Reset View Locations to restore default placements for all views, or use View: Move View to move only the scheduler task view to its dedicated sidebar.

Saving a profile can authorize arbitrary local code, including shell startup files. Run now explicitly starts a task even when its automatic schedule is disabled.

The extension creates a dedicated terminal per run. Your existing terminal is never reused. Shell Integration must support the required execution/output/end events; the UI explains blocked configurations. Aliases/functions must be defined in the selected shell's startup profile, not just typed into another terminal. Do not change execution policy or disable TLS verification to work around an unsupported setup.

PowerShell requires 7.3 or newer; the dedicated terminal uses standard native argument passing. Windows .cmd / .bat targets (including aliases to them) must use stdin rather than prompt arguments. Arbitrary functions/scripts that re-quote arguments internally remain subject to the wrapper contract below.

On Windows, if VS Code omits the detected shell type, the scheduler checks the owned terminal's process through a bounded, read-only OS query. It recognizes PowerShell only when that process has no child processes. If neither observation identifies the shell, no command is sent. Review the terminal profile. Direct mode is an explicit alternative only for native executables, not aliases or scripts. The scheduler does not guess the shell or silently switch modes.

Commands

Command Palette entry Action
AI CLI Scheduler: Open Scheduler Manage tasks, profiles, history and settings
AI CLI Scheduler: Stop Current Run Request a stop for the execution owned by this window
AI CLI Scheduler: Show Diagnostics Open diagnostic logs, not persisted raw agent output

Configure from Copilot Chat

In GitHub Copilot Chat's Agent mode, enable the AI CLI Scheduler tools in the tool picker. These are VS Code Language Model Tools, not an external MCP server; no MCP configuration, server process or port is required.

Tool reference Scope
#aiCliSchedulerQuery List tasks, profiles and history; read settings or one task
#aiCliSchedulerConfigure Create disabled tasks, edit/delete tasks, set enabled state, update shared settings

Example: "List my AI CLI Scheduler profiles, then create a disabled weekday 09:00 Asia/Tokyo task using my chosen profile, prompt and working folder." You can also ask to change its schedule, disable it, or change the history limit. Tool availability depends on the Chat client's tool selection and policies.

Changes request confirmation. Enabling a task allows future automatic CLI runs; it is separate from creating a disabled task. Folder approval, deletion and raw output persistence retain the extension's own confirmation dialogs. The tools cannot run or stop tasks, change executable profiles, set secrets, or bypass Workspace Trust. Use the management screen for those actions.

The model must query first and submit the returned revision as expectedRevision. Concurrent changes return editConflict; query again and review the intended change instead of blindly retrying. Lists are paged (20 by default, at most 50) and omit prompts, profile environments and raw output. Requesting one task's details includes its full prompt and requests separate disclosure confirmation. Names, folders and schedules still reach the model: review sensitive information before using Chat. Stored text is data, not instructions. A successful change means configuration saved, not an executed or completed AI task.

If ok: true includes warning.code: viewRefreshFailed, the change was saved but the view could not refresh. Do not repeat the change; query the current state or reopen the scheduler. An actual save failure still returns ok: false.

Language support

The extension follows VS Code's display language. Japanese (ja, including ja-JP) uses Japanese commands, view text, forms, validation and status messages. English and other display languages use English. After changing VS Code's display language, restart VS Code when prompted. There is no separate extension language setting. CLI output, custom profile names and user-entered prompts are not translated.

Documentation: English | 日本語

Custom profiles

Field Meaning
Name / agent kind Display name and optional known result parser; independent of executable name
Launch mode Default terminal, direct executable, or explicit shell
Command One executable or alias name, not an entire shell command line
Arguments JSON array of literal arguments; use one complete "{prompt}" element for argument input
Input argument or stdin; stdin mode must not also contain "{prompt}"
Environment Non-secret values for this run; never evaluated as shell expressions
Secret environment Environment name to secret-entry name; store the actual secret via the password prompt
Shell path / arguments Used only for the explicit-shell launch mode
Timeout Minutes before requesting cooperative stop; default 30, configurable

For gw claude, use the included Claude Code via Gateway profile:

{
  "kind": "claude",
  "mode": "terminal",
  "command": "gw",
  "args": [
    "claude",
    "-p",
    "--output-format",
    "json",
    "--no-session-persistence"
  ],
  "input": "stdin"
}

This is a partial configuration example, not a task to run during installation. The gateway remains a separately installed project. Stdin keeps prompt text out of its Windows argument re-quoting layer. PowerShell piping may append a newline. For a new agent, choose generic; you still get exit-state and output recording, without claiming a vendor-specific final-answer parser.

Scheduling policies

Settings edits keep the snapshot from when the form opened. If another window changes the settings before or during saving, the save is rejected rather than overwriting it or re-enabling output persistence. Use Reset draft after saving or a conflict to load the latest settings, then reapply any intended changes. Reset draft discards unsaved input. History-only updates do not invalidate a UI settings draft; Chat changes still require the current store revision.

Setting Default Alternative
While another run is active Skip and record the occurrence Queue only the latest occurrence per task, run serially
Missed while asleep/closed Record as missed; do not replay Run the latest missed occurrence per task
Raw output persistence Off; show in the current extension session Explicitly opt in to bounded disk retention
History limit 100 records 10–500
Captured output 1 MiB per run 64 KiB–4 MiB
Per-profile timeout 30 minutes 1–1440 minutes

Retained output and final answers share an additional 4 MiB per-run budget and 16 MiB aggregate budget, separately for memory and persisted history (including JSON escaping). Oldest payloads are evicted first while history metadata remains; the UI marks affected output as truncated.

Only one managed run is active across windows using the same extension storage. Manual runs do not consume the next scheduled occurrence. There are no automatic AI retries. The extension must be running; there is no OS scheduler registration. An invalid timezone blocks that task rather than silently changing its execution time.

Results and stopping

succeeded means the observed command exited successfully (and no parsed agent failure was reported), not that the requested coding task is correct. Terminal output is a combined stream; it is not labeled as separated stdout and stderr. Known structured CLI results can provide a final-answer view.

Stop and timeout request cancellation of the owned run only. The scheduler never calls gw down or kills all processes named node, claude, etc. Unknown termination, a closed terminal or an abandoned run can require inspection and explicit acknowledgment before another task may start. Check that the task is no longer running before acknowledging. A custom wrapper must wait for its task and propagate the result; arbitrary detached descendants cannot be guaranteed.

Privacy and limitations

Profiles, task prompts and approved folders are stored in VS Code's user-local extension storage, not in the opened repository. Secrets use VS Code SecretStorage. Raw output may contain sensitive data; persistence is off by default. Native CLI histories and VS Code terminal history are controlled separately. Explicit secret values are redacted, but output is not guaranteed to be free of every possible secret.

Terminal input/environment transport has a 24,000-character limit; direct execution supports larger input subject to platform limits. Direct execution does not resolve aliases or Windows .cmd / .ps1 wrappers: select a terminal/shell profile for those.

Remote/WSL/container windows, existing chat continuation, automatic worktrees and execution after VS Code exits are not included. Shell support depends on runtime capability checks. Development uses dummy agents only: real AI/gateway end-to-end execution is not implied by fixture tests, nor is cross-OS support implied by a Windows run.

See architecture and research sources for the execution contract, CLI permission prerequisites and detailed boundaries.

Development

npm ci
npm run typecheck
npm run compile
npm test
npm run test:extension
npm run lint
npm run verify:nls
npm run package
npm run verify:vsix -- artifacts/ai-cli-scheduler-0.1.1.vsix

F5 launches an isolated Extension Development Host through the provided launch configuration, retaining its development-only data under artifacts/dev-user-data. It does not inherit your usual VS Code settings, but terminal shells can still load their normal startup files. Integration tests use their own user-data/extensions/workspace directories and must never invoke a real AI CLI. For an installed VS Code binary, set VSCODE_EXECUTABLE_PATH for the extension test runner.

Do not publish, push release tags, register a daemon, or run AI tasks as part of setup. Local VSIX artifacts belong under artifacts/ and are not committed.

To regenerate the original extension icon on Windows, run ./scripts/New-ExtensionIcon.ps1 -Apply in PowerShell. Without -Apply, the script only reports its intended output.

Feedback and related projects

  • Report a bug or request a feature. Include the extension version, OS, shell and reproduction steps; never include secrets, real prompts or raw agent output.
  • Changelog tracks changes; third-party notices preserve upstream attribution.
  • Copilot Scheduler is the related extension that inspired this separate project.

Repository and issue links require access to this private repository. For public questions, use Marketplace Q&A.

日本語

GitHub Copilot CLI、Codex CLI、Claude Code を VS Code から予約実行する拡張です。 VS Code の表示言語が日本語なら、コマンド・フォーム・実行履歴も日本語になります。

  1. Marketplace から AI CLI Scheduler / yamapan をインストールします。
  2. 左端の AI CLI Scheduler アイコンをクリックし、タスク一覧上部の歯車から管理画面を開きます。コマンドパレットの AI CLI Scheduler: スケジューラを開く も利用できます。
  3. CLI の導入・認証を別途済ませ、プロファイル、プロンプト、作業フォルダと日時を設定します。
  4. 新規タスクは無効で保存されます。内容とフォルダ承認を確認してから有効にしてください。

単発・cron 予約、手動実行、停止要求、実行履歴に対応します。予約は VS Code 起動中だけ動作します。 「成功」はコマンドの終了コード等の確認結果であり、回答やコードの正しさの保証ではありません。 生出力の永続保存は既定で無効、秘密値は SecretStorage で管理します。 PowerShell は 7.3 以降が必要です。Windows で shell 種別の通知がない場合は、専用端末の実プロセスを 読み取り確認します。確認できない場合は実行しません。実 AI や gateway を使う検証は行っていません。

詳細: 日本語 README(リポジトリへのアクセス権が必要)。 公開の問い合わせ先は Marketplace Q&A です。

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