FieldCure.AssistStudio.Runner
2.0.3
{ "servers": { "FieldCure.AssistStudio.Runner": { "type": "stdio", "command": "dnx", "args": ["FieldCure.AssistStudio.Runner@2.0.3", "--yes"] } } }
.vscode/mcp.json settings file.
dotnet tool install --global FieldCure.AssistStudio.Runner --version 2.0.3
dotnet new tool-manifest
dotnet tool install --local FieldCure.AssistStudio.Runner --version 2.0.3
#tool dotnet:?package=FieldCure.AssistStudio.Runner&version=2.0.3
nuke :add-package FieldCure.AssistStudio.Runner --version 2.0.3
FieldCure.AssistStudio.Runner
Windows-only headless LLM task automation engine — define natural language tasks, schedule them via Windows Task Scheduler (recurring or one-time), and get results delivered through Slack, Telegram, Email, KakaoTalk, or Discord. Runs as an MCP server for task management or standalone for headless execution.
Install
dotnet tool install -g FieldCure.AssistStudio.Runner
The published package is Windows-only because scheduling is implemented via Windows Task Scheduler and credentials are stored in Windows Credential Manager.
Quick Start
# Create runner.json config template
assiststudio-runner config init
# Set API key
assiststudio-runner config set-credential "Claude Sonnet" sk-ant-api03-...
# Start MCP server
assiststudio-runner serve
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"runner": {
"command": "assiststudio-runner",
"args": ["serve"]
}
}
}
Tools (7)
| Tool | Description | Confirmation |
|---|---|---|
create_task |
Create a task with prompt, schedule, and MCP servers | Required |
update_task |
Modify task fields (partial update) | Required |
delete_task |
Delete a task and its history | Required |
list_tasks |
List all tasks with last execution status | — |
run_task |
Start task execution (async or wait up to 60s) | Required |
get_task_history |
Query execution history for a task | — |
get_execution_status |
Check status of a running execution | — |
Execution Modes
| Mode | Command | Purpose |
|---|---|---|
| Serve | assiststudio-runner serve |
MCP server for task CRUD + execution |
| Exec | assiststudio-runner exec <task-id> |
Headless single-task execution |
| Config | assiststudio-runner config <cmd> |
Credential and configuration management |
Requirements
- .NET 8.0 Runtime or later
- Windows (required for Task Scheduler and Credential Manager)
- FieldCure.Ai.Providers (bundled)
- FieldCure.Ai.Execution (bundled)
Scheduled tasks are registered with Windows Task Scheduler in interactive mode, so the user must be logged in when the trigger fires.
Designed for AssistStudio
Runner is purpose-built for the AssistStudio ecosystem. Tasks are typically created through natural language conversations in AssistStudio, which handles workflow design, MCP server selection, and tool permissions automatically.
While Runner can be used standalone with Claude Desktop or VS Code (via serve mode), you'll need to construct task parameters (prompt, MCP servers, allowed tools) manually. For the full experience, use AssistStudio.
See Also
Part of the AssistStudio ecosystem.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.3 | 75 | 5/4/2026 |
| 2.0.2 | 68 | 5/4/2026 |
| 2.0.1 | 60 | 5/4/2026 |
| 2.0.0 | 69 | 5/4/2026 |
| 1.4.0 | 105 | 4/22/2026 |
| 1.3.0 | 107 | 4/21/2026 |
| 1.2.0 | 104 | 4/14/2026 |
| 1.1.4 | 103 | 4/8/2026 |
| 1.1.3 | 98 | 4/7/2026 |
| 1.1.2 | 85 | 4/7/2026 |
| 1.1.1 | 90 | 4/7/2026 |
| 1.1.0 | 90 | 4/7/2026 |
| 1.0.0 | 95 | 4/7/2026 |
| 0.5.0 | 110 | 4/3/2026 |
| 0.4.0 | 121 | 4/2/2026 |
| 0.3.0 | 102 | 3/31/2026 |
| 0.2.0 | 104 | 3/30/2026 |
| 0.1.0 | 107 | 3/30/2026 |
v2.0.3: Stops duplicate output-channel deliveries. End-to-end testing of v2.0.2 surfaced a redundancy bug — when output_channel is configured, the framework auto-sends the final summary AND the LLM also called send_message mid-loop, so users got two messages on KakaoTalk/Slack/Email. Two-layer fix: (1) the headless system prompt now declares the configured output_channel by name and instructs the model not to call send_message for it, since the framework will deliver the final response automatically; failure handling is now explicit (do not retry tool calls more than once, finalize immediately on unrecoverable failure with the error reason in the final response, do not exhaust the round budget retrying); (2) TaskExecutor.TryNotifyAsync inspects the loop's tool-call history and skips the auto-send when the LLM already invoked send_message against the same channel — defence-in-depth against legacy tasks and stubborn models that ignore the prompt guidance.