FieldCure.AssistStudio.Runner
0.3.0
See the version list below for details.
dotnet tool install --global FieldCure.AssistStudio.Runner --version 0.3.0
dotnet new tool-manifest
dotnet tool install --local FieldCure.AssistStudio.Runner --version 0.3.0
#tool dotnet:?package=FieldCure.AssistStudio.Runner&version=0.3.0
nuke :add-package FieldCure.AssistStudio.Runner --version 0.3.0
FieldCure.AssistStudio.Runner
Headless LLM task automation engine — define natural language tasks, schedule them via Windows Task Scheduler, and get results delivered through Slack, Telegram, or Email. Runs as an MCP server for task management or standalone for headless execution.
Install
dotnet tool install -g FieldCure.AssistStudio.Runner
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)
Links
| 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 | 104 | 5/4/2026 |
| 2.0.2 | 91 | 5/4/2026 |
| 2.0.1 | 87 | 5/4/2026 |
| 2.0.0 | 90 | 5/4/2026 |
| 1.4.0 | 107 | 4/22/2026 |
| 1.3.0 | 109 | 4/21/2026 |
| 1.2.0 | 108 | 4/14/2026 |
| 1.1.4 | 104 | 4/8/2026 |
| 1.1.3 | 99 | 4/7/2026 |
| 1.1.2 | 86 | 4/7/2026 |
| 1.1.1 | 91 | 4/7/2026 |
| 1.1.0 | 93 | 4/7/2026 |
| 1.0.0 | 96 | 4/7/2026 |
| 0.5.0 | 114 | 4/3/2026 |
| 0.4.0 | 124 | 4/2/2026 |
| 0.3.0 | 103 | 3/31/2026 |
| 0.2.0 | 110 | 3/30/2026 |
| 0.1.0 | 112 | 3/30/2026 |
# Release Notes
## v0.3.0
- **Default MCP servers** — `defaultMcpServers` in runner.json, auto-bootstrapped for every task execution
- **Essentials auto-detection** — `BuildFromVault` includes FieldCure.Mcp.Essentials if installed
- **Safe tools bypass** — `get_environment` and `run_javascript` always allowed regardless of AllowedTools
- **`exclude_default_servers`** — per-task flag to opt out of default servers
- **Core dependency removed** — replaced `FieldCure.AssistStudio.Core` with `FieldCure.Ai.Providers` for independent releases
- **Test isolation** — `RUNNER_DATA_DIR` env var support; tests use temp directory
## v0.2.0 (2026-03-30)
- **Auto-config from Credential Manager** — `serve` mode auto-generates `runner.json` by scanning Windows Credential Manager for known provider API keys when no presets are configured
- **API key lookup fix** — resolve API keys by provider type (matching AssistStudio's storage format) instead of preset name
- **Preset resolution fallback** — `ResolvePreset` now falls back to matching by provider type when exact preset name match fails
- **CredentialService rewrite** — switch from direct PasswordVault API to `CredEnumerateW` P/Invoke for `PackAsTool` compatibility (net8.0 TFM)
- **Enhanced `config init`** — supports `--preset`, `--provider`, `--model`, `--if-missing` flags
## v0.1.0 (2026-03-30)
Initial release.
- **Dual-mode operation** — MCP server (`serve`) for task CRUD + execution, headless CLI (`exec`) for scheduled runs
- **7 MCP tools** — `create_task`, `update_task`, `delete_task`, `list_tasks`, `run_task`, `get_task_history`, `get_execution_status`
- **6-phase execution pipeline** — initialize, MCP bootstrap, LLM loop (CompleteAsync), summarize, notify, cleanup
- **Windows Task Scheduler integration** — cron-to-schtasks mapping (minute, hourly, daily, weekly, monthly)
- **Multi-provider LLM support** — Claude, OpenAI, Gemini, Ollama, Groq via AssistStudio.Core
- **MCP server orchestration** — tasks bootstrap configured MCP servers (Outbox, RAG, Filesystem, custom)
- **Safety-first tool control** — AllowedTools null = no tools; explicit allowlist required for headless execution
- **Secure credential storage** — Windows Credential Manager (DPAPI), shared with AssistStudio
- **SQLite storage** — WAL mode for concurrent serve + exec access; Tasks + TaskExecutions tables
- **Execution logging** — DB summary + detailed JSON logs with full conversation history per round
- **Result delivery** — optional Outbox channel notification with fallback channel for failures
- **CLI credential management** — `config init`, `set-credential`, `get-credential` subcommands
- **LLM retry policy** — configurable exponential backoff (3 attempts default)
- **Log retention** — automatic cleanup of old execution logs (30 days default)