Quick Start
Get up and running with Dyngle in minutes.
Installation
Dyngle requires Python 3.13 or later.
On MacOS, try:
brew install pipx
Then:
pipx install dyngle
On Debian with Python already installed, try:
python3.13 -m pip install pipx
pipx install dyngle
In containers:
pip install dyngle
After installation, verify that Dyngle is working:
dyngle --help
You should see the command-line help output.
Getting Started
Create a file called .dyngle.yml in your current directory:
dyngle:
operations:
hello:
- echo "Hello world"
Run the operation:
dyngle run hello
You should see:
Hello world
Referencing CLI arguments
Operations can reference arguments passed in to the run command. Update your .dyngle.yml:
dyngle:
operations:
hello:
- echo "Hello {{runtime.args.0}}!"
Run the operation:
dyngle run hello 'Ada'
You should see:
Hello Ada!
Referencing structured data
Command line arguments provide some convenience, but many operations require a more complete data structure. In its simplest form, input data handling can be tried by piping YAML text to the run command.
dyngle:
operations:
hello:
- echo "Hello {{name}}!"
Run the operation:
echo "name: Katherine Johnson" | dyngle run hello
Output:
Hello Katherine Johnson!
Specifying an input data schema
With structured input data, it's possible to specify a schema which is validated when the operation runs. Use accepts: for that, and also move the commands a level down into a steps: entry.
dyngle:
operations:
hello:
accepts:
full-name:
required: true
steps:
- echo "Hello {{full-name}}!"
This will fail:
echo "name: Jane" | dyngle run hello
But of course this works:
echo "full-name: Jane Goodall" | dyngle run hello
Performing logic with Python
Dyngle supports expressions that use Python, using a limited set of read-only operations.
The basic idea: Python for calculating, steps for doing things.
dyngle:
operations:
hello:
accepts:
first-name:
last-name:
required: true
expressions:
full-name: (first_name if first_name else 'Ms.') + ' ' + last_name
steps:
- echo "Hello {{full-name}}!"
echo "last-name: Curie" | dyngle run hello
Hello Ms. Curie!
Creating AI tools
Dyngle includes an MCP server to run its operations. To use it, we need to direct the output from the operation to a variable, and return the variable, so the operation becomes like a function.
dyngle:
operations:
hello:
accepts:
first-name:
last-name:
expressions:
full-name: (first_name if first_name else 'Mx.') + ' ' + last_name
steps:
- echo "{{full-name}} says 'nice to meet you'." => greeting
returns: greeting
To try it in Claude Desktop, edit or create ~/Library/Application Support/Claude/claude_desktop_config.json (or equivalent in OS's other than MacOS).
{"mcpServers": {"dyngle": {"command": "dyngle", "args": ["--config", "/absolute/path/to/your/project/.dyngle.mcp.yml", "mcp"]}}}
Then try a prompt:
Say hello to Jennifer Doudna using the Dyngle tool.