@marktoflow/cli
v2.0.5
Published
CLI for running AI-powered markdown workflows with tool calling, parallel agents, and 38 integrations
Maintainers
Readme
@marktoflow/cli
Command-line interface for running AI-powered markdown workflow automations with tool calling, parallel agents, and 38 integrations.
Part of marktoflow — open-source AI workflow automation.
Quick Start
npm install -g marktoflow
marktoflow init
marktoflow run workflow.mdOr without installing:
npx @marktoflow/cli run workflow.mdFeatures
- Workflow Execution — Run markdown workflows from the terminal
- AI Agents — OpenAI, Claude, Copilot, Ollama, llama.cpp, VLLM — any OpenAI-compatible endpoint
- Tool Calling — Agentic workflows where models decide which tools to invoke
- Parallel Agents — Run multiple AI models concurrently (
parallel.spawn,parallel.map) - Dry Run Mode — Test workflows without executing actions
- OAuth Integration — Easy OAuth setup for Gmail, Outlook, Google services
- Scheduling — Background cron-based workflow scheduling
- Webhooks — Built-in HTTP server for event-driven workflows
- Templates — Create workflows from built-in templates
- Diagnostics —
marktoflow doctorfor system health checks - Visual Designer — Launch the GUI with
marktoflow gui
Key Commands
Run a workflow
marktoflow run workflow.md
marktoflow run workflow.md --input key=value
marktoflow run workflow.md --verbose
marktoflow run workflow.md --dry-runRun with AI agents
marktoflow run workflow.md --agent openai --model gpt-4o
marktoflow run workflow.md --agent claude --model sonnet
marktoflow run workflow.md --agent copilot
marktoflow run workflow.md --agent ollama --model llama3.2
marktoflow run workflow.md --agent vllm --model my-local-model # llama.cpp, VLLM, etc.Validate before running
marktoflow workflow validate workflow.mdConnect services
marktoflow connect gmail
marktoflow connect outlookSchedule workflows
marktoflow schedule workflow.md --cron "0 9 * * 1-5"
marktoflow schedule startStart webhook server
marktoflow serve --port 3000
marktoflow serve --socket # Slack Socket ModeLaunch visual editor
marktoflow gui
marktoflow gui --port 3000 --openCreate from template
marktoflow new --list
marktoflow new code-review --output workflows/code-review.mdOther commands
marktoflow init # Initialize project
marktoflow version # Show version
marktoflow doctor # System diagnostics
marktoflow agents list # List available AI agents
marktoflow tools list # List available integrations
marktoflow history # View execution historyExample: AI-Powered Daily Standup
cat > workflows/standup.md << 'EOF'
---
workflow:
id: daily-standup
name: Daily Standup
tools:
jira:
sdk: 'jira.js'
auth:
host: '${JIRA_HOST}'
email: '${JIRA_EMAIL}'
apiToken: '${JIRA_API_TOKEN}'
slack:
sdk: '@slack/web-api'
auth:
token: '${SLACK_BOT_TOKEN}'
steps:
- action: jira.issues.searchIssues
inputs:
jql: 'assignee = currentUser() AND status = "In Progress"'
output_variable: issues
- action: slack.chat.postMessage
inputs:
channel: '#standup'
text: 'Working on: {{ issues.issues[0].fields.summary }}'
EOF
marktoflow schedule workflows/standup.md --cron "0 9 * * 1-5"
marktoflow schedule startExample: Local LLM with Tool Calling
tools:
ai:
sdk: openai
auth:
base_url: http://localhost:8000/v1
api_key: dummy
options:
model: auto # Auto-detect from server
steps:
- action: ai.chatWithTools
inputs:
messages:
- role: user
content: "{{ inputs.query }}"
tools:
- type: function
function:
name: search
description: Search for information
parameters:
type: object
properties:
query: { type: string }
required: [query]
maxTurns: 5Contributing
See the contributing guide.
