Skip to main content

Skiller.run agentic workflows.

Project description

Skiller.run

A runtime for agentic workflows.

Skiller runs agentic flows as durable executions with persistent state, safe resume, and full observability logs.

What It Does

  • Runs durable YAML flows that can include agents
  • Pauses and resumes flows from persisted waiting states
  • Provides CLI to observe and manage persisted runs
  • Includes a TUI for chatting with agents, launching flows, and managing runs
name: mono
description: "Terminal agent chat with shell and file access"
version: "0.1"
start: ask_user

inputs: {}

steps:
  - wait_input: ask_user
    prompt: "Write a task or message. Type exit, quit, or bye to stop."
    next: decide_exit

  - switch: decide_exit
    value: '{{output_value("ask_user").payload.text}}'
    cases:
      exit: done
      quit: done
      bye: done
    default: mono_agent

  - agent: mono_agent
    system:
      file: "./system.md"
    task: '{{output_value("ask_user").payload.text}}'
    tools:
      - shell
      - files
    max_turns: 50
    next: ask_user

  - assign: done
    values:
      status: "closed"

Install

For regular CLI usage, install it with pipx:

pipx install skiller

STUI for chat and launch runs

Use skiller when you want an interactive terminal UI to chat, launch runs, and manage persisted runs.

skiller

Use CLI to run flows

Run a YAML flow definition:

skiller run --file <path>

Inspect and manage runs:

skiller status <run_id>
skiller logs <run_id>
skiller delete <run_id>

Flow Steps

Deterministic:

  • assign
  • notify
  • switch
  • when

Execution:

  • agent
  • shell

Waiting:

  • wait_input
  • wait_webhook

Persistence

Skiller persists:

  • run state
  • step outputs
  • runtime log events
  • waiting states
  • external event receipts
  • persisted output bodies

Waiting is persisted, not simulated in memory. A run can stop in WAITING and resume later from stored state.

How Mono Is Built

mono is a regular YAML-defined agent with local runtime configuration beside it. The flow is intentionally small:

  • wait for terminal input with wait_input
  • stop on exit, quit, or bye with switch
  • send every other message to an agent step
  • let that agent use its configured shell and files tools
  • loop back to wait_input

Minimal shape:

name: mono
start: ask_user

steps:
  - wait_input: ask_user
    next: decide_exit

  - switch: decide_exit
    default: support_agent

  - agent: support_agent
    tools:
      - shell
      - files
    next: ask_user

The full prompt and step definition live in apps/agents/mono/agent.yaml. The provider, loop limits, shell allowlist, and file roots live in apps/agents/mono/agent.json.

Project Layout

  • packages/skiller/src/skiller: runtime and CLI code
  • apps/agents/mono: bundled terminal agent
  • packages/skiller/docs: runtime and CLI documentation
  • packages/skiller/tests: runtime, CLI, and integration tests
  • apps/tui: Textual UI app

Documentation

Core guides:

Step references:

Development

Run the main checks:

./.venv/bin/python -m ruff check packages/skiller/src apps/tui/src packages/skiller/tests apps/tui/tests
./.venv/bin/python -m pytest packages/skiller/tests apps/tui/tests
./.venv/bin/python -m build --no-isolation

Manual CLI E2E flows live in packages/skiller/tests/e2e/cli_*.sh. Use them when you need to exercise the real CLI path without mixing those checks into the default pytest suite.

License

Apache-2.0. See LICENSE.

Disclaimer

This project is provided "as is", without warranties of any kind. The authors and contributors are not responsible for production incidents, data loss, service interruptions, security issues, regulatory non-compliance, third-party integration failures, or any direct or indirect damages resulting from its use.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skiller-0.1.0b19.tar.gz (494.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skiller-0.1.0b19-py3-none-any.whl (445.9 kB view details)

Uploaded Python 3

File details

Details for the file skiller-0.1.0b19.tar.gz.

File metadata

  • Download URL: skiller-0.1.0b19.tar.gz
  • Upload date:
  • Size: 494.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skiller-0.1.0b19.tar.gz
Algorithm Hash digest
SHA256 2a9b9c13b345abe6402e62c060924bafc0070e88a337f1f981bfac95dda72b21
MD5 08f9de1ab9585828b2a37df762da3cb4
BLAKE2b-256 10610b27eff99b384cb7aec2a1feab122b79327ad4ac31f60f1c9454411969ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for skiller-0.1.0b19.tar.gz:

Publisher: publish.yml on fredycampino/skiller

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file skiller-0.1.0b19-py3-none-any.whl.

File metadata

  • Download URL: skiller-0.1.0b19-py3-none-any.whl
  • Upload date:
  • Size: 445.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for skiller-0.1.0b19-py3-none-any.whl
Algorithm Hash digest
SHA256 7cc687ac0d4b6cee9daeba24ac85e5dd2c7cad118aecd2e67fa0459711bb73a0
MD5 a25daf76eeb1c9114db5c18cc5925e5a
BLAKE2b-256 b0b27e267a77ad382f6eafe0e832a6b860af2402e51f9265b67883addbd31fba

See more details on using hashes here.

Provenance

The following attestation bundles were made for skiller-0.1.0b19-py3-none-any.whl:

Publisher: publish.yml on fredycampino/skiller

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page