Skip to content
Agentmart
Submit a tool

fax-send

Send outbound faxes through a guarded provider adapter and route inbound fax-to-email attachments into downstream document workflows.

Skill by HybridAIOne

IndexedMIT★ 159
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/hybridaione-fax-send

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Send outbound faxes through a guarded provider adapter and route inbound fax-to-email attachments into downstream document workflows.

Use cases: documents, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/fax-send

What's inside

Skill name
fax-send
Description
Send outbound faxes through a guarded provider adapter and route inbound fax-to-email attachments into downstream document workflows.
License
MIT
Instructions
246 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (4)

  • SKILL.md
  • scenarios.json · evals/
  • fax_send.cjs
  • index.cjs

SKILL.md (first lines)

# Fax Send

Use this skill when a user asks to fax a supported file, web page, text note, or
PDF to an external fax number, or when an inbound fax arrives as an email PDF
and needs routing to a document workflow such as DATEV Belegtransfer, file
storage, or client records.

## Response Contract

- Return exactly one user-facing summary per fax request. Do not restate the
  same plan, missing-input list, or no-send notice in a second format.
- For provider results, write the status sentence once. Do not emit both a
  markdown-styled version and a plain-text duplicate of the same sentence.
- Do not use decorative emoji, checkmarks, sign-off text, or "ready to proceed"
  filler in fax responses.
- If setup is blocked by missing secrets, report each missing secret exactly
  once and only if it is actually required: `SINCH_FAX_PROJECT_ID` plus either
  `SINCH_FAX_BASIC_AUTH` or `SINCH_FAX_OAUTH_TOKEN`. Never claim a Sinch
  service ID secret is required for normal outbound sending.
- When the user provides text content such as "Hallo Welt", use the helper's
  helper-generated PDF upload path after the recipient fax number, stored Sinch
  project ID, stored credential, and explicit approval are available. Omit
  `from` when the user wants to use the Sinch Fax service default sender. Do
  not ask the user for a service ID for a normal outbound send; Sinch uses the
  product's default Fax service when `serviceId` is omitted.
- A live `http_request` to Sinch is terminal for that send attempt. After it
  returns, stop and report the provider result. Do not use `web_search`,
  `web_fetch`, the PDF skill, local PDF scripts, helper source inspection, or
  ad hoc replacement requests, and do not ask to retry in the same response,
  unless the user explicitly asks for debugging in a new turn.

## Scope

- outbound fax send from a content URL or direct generated-PDF text upload
- outbound fax send from a local generated PDF file
- Sinch Fax API request construction for EU-resident Sinch projects/services
- delivery status lookup and status-to-audit-event classification
- fax-page cost measurement in helper output
- inbound fax-to-email operating recipe through the existing email channel
- eval scenarios for successful send, busy/retry, failed delivery, and inbound
  PDF handoff flows

Direct modem control, T.38/SIP live transmission, binary local file upload, and
cover-page templating are outside this skill slice.

## Credential Rules

Store credentials in HybridClaw encrypted runtime secrets. Never paste them into
chat or helper arguments.

For Sinch Basic auth, set the base64 value of `username:password` in this
order:

1. Browser admin: open the active HybridClaw admin URL ending in `/admin/secrets` and set
   `SINCH_FAX_BASIC_AUTH`.
2. Browser `/chat` or TUI fallback:
   `/secret set SINCH_FAX_BASIC_AUTH "<base64-username-password>"`.
3. Local console fallback:

```bash
hybridclaw secret set SINCH_FAX_BASIC_AUTH "<base64-username-password>"
```

For Sinch OAuth, set a bearer token only if the operator has a token minting
process, using the same setup order:

1. Browser admin: open the active HybridClaw admin URL ending in `/admin/secrets` and set
   `SINCH_FAX_OAUTH_TOKEN`.
2. Browser `/chat` or TUI fallback:
   `/secret set SINCH_FAX_OAUTH_TOKEN "<access-token>"`.
3. Local console fallback:

```bash
hybridclaw secret set SINCH_FAX_OAUTH_TOKEN "<access-token>"
```

The helper emits either `secretHeaders: [{ name: "Authorization", secretName:
"SINCH_FAX_BASIC_AUTH", prefix: "Basic" }]` or `bearerSecretName:
"SINCH_FAX_OAUTH_TOKEN"` so the gateway injects the secret server-side.

Set the Sinch project default once so normal sends do not need provider account
arguments:

1. Browser admin: open the active HybridClaw admin URL ending in `/admin/secrets` and set
   `SINCH_FAX_PROJECT_ID`.
2. Browser `/chat` or TUI fallback:
   `/secret set SINCH_FAX_PROJECT_ID "<sinch-project-id>"`.
3. Local console fallback:

```bash
hybridclaw secret set SINCH_FAX_PROJECT_ID "<sinch-project-id>"
```

## Default Workflow

1. Confirm the recipient fax number in E.164 format and the content URL, local
   PDF file, or text upload content. Use stored `SINCH_FAX_PROJECT_ID` by default. Include
   `--from` only when the user explicitly supplies a sender fax number;
   otherwise omit it so Sinch uses the Fax service default sender. Omit
   `serviceId` unless the user explicitly provides a non-default Fax service ID
   in the same request.
2. Run `plan` for natural-language requests when details are incomplete.
3. Require explicit operator approval before `fax.send`; faxing is an external
   document delivery action and can incur per-page cost.
4. Build the request with `fax_send.cjs http-request send`. Do not hand-author
   Sinch API JSON or secret references.
5. Pass only the emitted `httpRequest` object to `http_request` for live sends.
6. After the `http_request` returns, stop tool use for that send attempt and
   summarize the returned status/body. If Sinch returns 4xx/5xx, report it as
   the provider response; do not search the web, inspect PDF tooling, or retry
   with a different payload shape in the same turn.
7. Record/inspect audit intent or call the runtime accounting helper:
   - `fax.send.start` before dispatch
   - `fax.send.delivered` when status is `COMPLETED`
   - `fax.send.failed` when status is `FAILURE`
8. Use `classify-status` after status polling or webhook payloads to turn
   provider states into the expected audit event and retry decision.

## Command Contract

From HybridAIOne/hybridclaw, MIT.

More from HybridAIOne/hybridclaw

Signals

Stars
159
Forks
17
Open issues
323
Last commit (this folder)
Oct 8, 2026 (20 days ago)
Last release
Oct 24, 2026 (4 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from HybridAIOne

Cite this page

fax-send skill. Agent Mart. https://agentmart.dev/skills/hybridaione-fax-send (last updated 2026-10-24)