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.

    Field note 29 July 2026 · 4 min read

    The bot that became a wall

    A gym chain replaced its support with a chatbot. A member just wanted an invoice. The internet did the rest.

    Thorsten Lampe

    Last week a member of TrainMore, a large European gym chain, tried to get a VAT invoice. What they got was a chatbot with a friendly human name, an error about a “temporary limit,” a one-time code the bot then refused to accept, and the same question put back to them four times. Every route to a person led back to the bot. It ended up on the city’s subreddit, upvoted into the hundreds, commenters working out which no-code tool and which model the company had wired together.

    I read that thread twice. The first time I thought what everyone thought: AI support is bad. The second time I saw the worse thing underneath it.

    I spent years running a chemical-materials marketplace that did about 1.5 billion euro across three continents, and I still could not always get a customer to the right person fast enough. So I know the pull of the cheap fix. When the queue grows faster than the team can, a bot that answers everything over a weekend looks like mercy.

    But almost none of the anger in that thread was about a wrong answer. It was about the bot standing between a paying customer and the human who could have fixed the whole thing in ten seconds. TrainMore shipped more than a weak tool. It put a machine in the doorway and took the door off its hinges.

    And here is the part that should worry anyone who cares about their brand. It was self-inflicted, it was public, and it does not scroll away. A bad review fades in a week. This is a case study in how not to treat customers, written by the customers themselves, sitting on the front page of a forum its future members read before they join.

    The false choice

    You get handed a choice, and both answers are bad.

    Great human service does not scale. It is expensive, the good people are hard to keep, and the knowledge that makes it good lives in one person’s head. You feel it every time the queue outruns the team.

    Cheap automated service scales, and it costs you the brand. A no-code flow plus a model is a weekend of work. It runs fine, until the Tuesday it doesn’t, and then it loops, dead-ends, makes up a policy, and cannot tell when it is out of its depth. A reputation bomb with a delay timer.

    Most companies pick one and lose something they cared about. They cap their growth on the price of good service, or they trade the reputation they spent years building for a bot that will, sooner or later, end up in a screenshot. And it lands hardest on the operators who should care most, the ones who chose service as the reason a customer picks them over someone cheaper. For them a viral failure does more than dent a quarter. It burns the exact thing the business is built on.

    The third option

    The real problem sits one level up from cost. It is this: deliver the service that builds the brand, at a size you can afford, without it ever going off-script.

    That points at a different kind of tool. An agent that answers from your own canon: your real policies, your prices, the exceptions your best people already carry in their heads. It acts behind a gate you hold, so nothing reaches a customer that you would not put your own name on. It knows when it is out of its depth and hands over to a person on the same thread, at once, with no wall in between. And because it runs on infrastructure you own, with its actions recorded, you can show afterwards exactly what it did, to a customer, to your team, or to a regulator.

    Here is where that gets too clean, so let me break it myself. A gate does not make the model correct. It will still draft things you would never send. What the gate changes is who meets the mistake first: your team, early, with a record, while the customer only ever sees what you would stand behind. The promise is small and exact. Your customer is never the one who finds the error, and you can prove what happened when someone asks. If you were hoping for a model that never errs, no honest person can sell you one.

    Two reasons, one direction

    There are two reasons to build it this way, and they pull in the same direction. The first is growth. You say yes to more customers without watering down the service you are proud of, and your best people stop answering the same question for the hundredth time. The second is protection. You do not wake up as the punchline on a forum, because the agent cannot wall a customer off and cannot fold a mistake into silence. Most tools sell you the first and quietly hand you the opposite of the second.

    The choice

    The companies that win the next decade on service will be the ones who scaled the service they were already proud of. TrainMore ran the other race. It had that choice on an ordinary Tuesday, and answered it with a chatbot in the doorway.

    The thread is still up.

    This is the problem we are working on.

    Common questions

    What actually went wrong with TrainMore's support chatbot?

    The failure was not a single wrong answer. A member trying to get a VAT invoice was looped through error messages and a one-time code the bot would not accept, and every attempt to reach a person led back to the bot. The chatbot became a wall between a paying customer and the human who could have solved the problem in seconds, and the exchange went viral on the city's subreddit.

    Does this mean AI customer support is a bad idea?

    No. It means an ungoverned bot with no path to a human is a bad idea. The problem is not automation, it is automation that can trap a customer, invent policy, and fail in silence. A governed agent that answers from the company's own rules and hands to a person when it is out of its depth does not carry that risk.

    What is the alternative to a rented support chatbot?

    An agent that answers from your own canon, your real policies, prices, and product truth, acts only behind a gate you hold, and hands the customer to a person on the same thread when it is out of its depth. Run it with its actions recorded, so you can prove what it did to a customer, your team, and a regulator. Owned, not rented.