hurozo Attend
First step

Set up your first agency

Create an agency, add workers, attach canon, and assign its first task.

Worker Tools

Manage worker

Tune the role and tools for this agency teammate. Graph wiring stays internal.

Tools

Loading...

Worker View

No tools selected
Team worker Untitled Agent Describe what this agent should do. HurozoAgent

Worker Chat

Describe the worker you want to add to this team, or what you want to change.
Draft JSON
{}

Teams

Teams are managed from Agency.

Connectors

Connectors

Connect services for the current agency

Loading connectors…

Agency

Team workspace

Planning

Filters

Build

Runs

Execution activity

Runs

Inspect Worker work, tool calls, reasoning summaries, and failures.

Select a run to inspect its activity.

Files

Agency files

    Documentation

    Contact Us

    New message

    To: hi@hurozo.com

    Hurozo CLI

    Terminal-first agent work

    Hurozo CLI

    The same Hurozo agent runtime, model routes, approvals, and connected tools from your shell.

    Install with Homebrew
    brew tap hurozo/hurozo-cli
    brew install hurozo-cli
    Hurozo CLI running in a terminal

    Model routing

    Switch between Hurozo, Gemini, Opus, and ChatGPT-backed routes when your account is configured for them.

    Approvals

    Review tool permissions from the terminal and keep remembered decisions scoped to the exact operation.

    Second opinions

    Use model arbitration to ask another available route for critique, checks, or a different perspective.

    Connected tools

    Use the same account-backed connectors and skills available in Hurozo's desktop and WebCLI experiences.

    First run

    After installation, run hurozo. The CLI walks you through account authentication and any model-specific sign-in or secret setup that your selected route requires.

    Hurozo SDK

    Python agent invocation

    Hurozo SDK

    Invoke saved Hurozo agents from Python using the same API tokens, inputs, outputs, and runtime routing used by Agent Builder.

    Install
    pip install hurozo
    getting_started.pyPython
    import json
    import os
    
    from hurozo import Agent
    
    os.environ["HUROZO_API_TOKEN"] = "YOUR_API_TOKEN"
    agent = Agent("sentiment-analyser")
    inputs = {
        "prompt": "Analyze sentiment and return JSON. Text:",
        "input": "I am very happy!",
    }
    
    result = agent.run(inputs)
    print(json.dumps(result, indent=2))

    Agent lookup

    Use an agent name, saved agent id, or agent UUID. The SDK resolves the correct execution target.

    Structured inputs

    Pass a Python dictionary matching the API input keys exposed by the saved workflow.

    Hosted runtime

    Runs against Hurozo's execution endpoint, including model routing, tools, outputs, and usage accounting.

    Token setup

    Create an API token from Account settings -> Manage API Tokens, then set it as HUROZO_API_TOKEN before running scripts.

    Respond

    Start every reply from a draft, not a blank box.

    The First Reply crew reads the account, drafts the reply in your voice with the facts in it, and holds it for your call.

    The reply, on your data

    See the reply it drafts, and where it stops.

    One real ticket. The crew reads it, drafts the reply, and stops. You decide what to send.

    Attend · your support deskobserve mode · sample data
    M
    Maria · 09:38
    My order arrived damaged. I would like a refund, please.
    #4471
    Drafted reply · in your voice

    Hi Maria, I am sorry your order turned up damaged. That is not the unboxing we want for you.

    I have arranged a full refund of €48 back to your original card. It usually lands within three to five working days. You do not need to send the item back.

    If anything else looks off when your replacement arrives, just reply here and I will sort it.

    grounded in your refund policy · damaged goods
    Reply drafted and ready · your call
    Read it firstApprove and send
    read the accountdrafted in your voicegrounded in canonheld at the gatelogged

    A sample of one reply, in observe mode on sample data. The background behind the window is not real data. On your own tickets the reply is drafted from your canon and your past replies, and nothing is sent until you approve it.

    How the First Reply crew works

    It writes every reply. You approve each one.

    The crew reads the ticket, writes the draft, and keeps a record of every step. Nothing is sent until you say so.

    It reads the whole account first.
    Before a word is written, it pulls the order, the history, and the policy that applies. The draft starts from the facts, not a guess.
    what it read
    Order #4471, damagedCRM
    Refund policy, damaged goodsyour canon
    It drafts in your voice, with the facts in it.
    Your tone, your wording, the real numbers pulled in. Every fact points back to a line in your canon, so the answer is yours, and you can see where it came from.
    where it came from
    €48, original cardorder
    3 to 5 working dayspolicy §
    It holds at the gate. Nothing sends until your call.
    The draft waits for you. Read it, edit it, or approve and send. The choice to send is always yours, and every step is on the record.
    your call
    Held for approval
    Drafted, edited, sentlogged
    Why it matters

    Your team loses hours to the empty box, one reply at a time. Give them a draft to start from, and they can spend that time on the replies that really need a person.

    Questions

    What support leads ask about drafted replies.

    Does it send replies by itself?
    No. The First Reply crew drafts and holds. Every reply waits for you to approve it. You can read it, edit it, or send it. Nothing goes out without your yes.
    Whose voice does it write in?
    Yours. It drafts from your canon and your past replies, so the tone and wording match how your team already writes. You are approving your own voice, not a generic bot's.
    What if it does not know the answer?
    It does not guess. Every draft is based on your canon and shows its source. Where your canon has no answer, it says so and holds the ticket instead of making one up. Answering from your source of truth is its own job, handled by the Answer Desk.
    What about the angry or complex ones?
    Those are not for a drafted reply. The Escalation Spotter catches the ticket that should reach a person and routes it, with the full history attached. First Reply is for the everyday tickets where a good draft saves your team the blank box.
    Can it reply in other languages?
    It can draft in the customer's language from the same canon, so the facts stay consistent across languages. Multilingual reply is on the roster; like every draft, it is held at the gate for your review before anything sends.
    Where do the facts in the reply come from?
    Your connected help desk, CRM, and canon. The crew reads the account and the policy that applies, then drafts from what it found. The record shows the source behind every draft.
    Is there a record of what it drafted and sent?
    Yes. Every draft, edit, hold, and send is logged and mapped to the EU AI Act, so you can show exactly what was written, from what, and who approved it. See Trust and security.
    Own your first reply

    Own every first reply, in your voice.

    Take the blank box off your team, and keep the reputation you are known for. Every reply is drafted, held for your yes, and logged. And all of it is yours.

    You own itBuilt for the EU AI ActYour data stays in the EUA person is always reachable