Zynk CLI

Scheduled jobs and setup

Run Zynk from cron or a systemd timer, talk to the daemon, and generate config and shell completions.

Scheduled jobs

Use absolute paths for the executable, configuration, state, and output files in a scheduled job. Complete sign-in first, and make sure any running daemon uses the same account and state. Avoid setup commands that ask interactive questions.

Read pending transfers for a scheduled job

$ zynk --config ./server.zynk.conf --json-output pending > pending.jsonl 2> zynk.err

If a daemon is running, it uses its own loaded account and configuration. --config here does not switch the daemon’s account. Start the daemon with the intended configuration before scheduling this command. Check the exit status before using pending.jsonl; zynk.err keeps diagnostics separate.

Daemon-backed commands

A running daemon can handle supported commands from scripts. Other commands run directly. Read Daemon for starting and managing the background process.

JSON and exit-status rules are the same on both routes. A daemon-backed send waits for submission acknowledgement, not just a queued receipt. It does not wait for recipient acceptance or delivery.

Fallback is allowed only when it is safe. Zynk does not automatically retry a send after it may have been dispatched.

Check daemon status

$ zynk --json-output daemon status

Read data.running to see whether the daemon is running. A daemon is not required for every CLI command.

Generated files

JSON mode puts generated text in data.content. Use jq to extract that text without JSON quotes or an extra newline.

Completion generation supports bash, zsh, fish, powershell, and elvish. Completion JSON has type completions and a data.shell field. Example configuration JSON has type example_config and data.format: toml.

Write an example configuration — Bash

zynk --json-output --example-config > config.jsonl &&  jq -rj 'select(.type == "example_config") | .data.content' config.jsonl > zynk.conf

&& runs the second command only if Zynk succeeds. The result is a clean TOML configuration file.

Write Zsh completions — Bash

zynk --json-output completions zsh > completion.jsonl &&  jq -rj 'select(.type == "completions") | .data.content' completion.jsonl > _zynk

This writes _zynk in the current directory; it does not install the file into your shell configuration.

Generate completions without JSON

$ zynk completions zsh > _zynk