What you need
- Go installed locally
- an OpenAI-compatible chat completion endpoint
- a model name that your provider accepts
1. Install hrns
You can install the binary from a local checkout or directly from GitHub.
Install from source
From the repository root:Install from GitHub
hrns binary in your Go bin directory.
2. Start the TUI
If you installed the binary:hrns checks for ~/.config/hrns/config.json. If the file does not exist, it starts interactive onboarding and asks for:
- provider name
- provider API URL
- provider API key
- default model
- whether to skip TLS verification
3. Adjust settings from inside the TUI
To change the saved model for the current provider:/newresets the conversation history/modelslists models from the current provider’s/modelsendpoint/model <model>updates the current provider’s saved default model/providerslists saved providers/provider <name>switches the active provider for this session and saves it as current/agentslists registered agents/agent <agent>switches the active agent prompt and saves it as current/connectadds another provider to the config file/helpprints the command list
/connect saves a provider entry and updates currentProvider in the config file, but it does not rebuild the active client for the same session. If you want to start using the new provider right away, run /provider <name> after connecting it.
4. Send a prompt that can use tools
Try something that encourages tool use:5. Know the current defaults
The bundled app is intentionally opinionated and minimal:- The TUI supports registered agents and can save the current agent prompt when agents are provided.
- Provider configuration is stored in
~/.config/hrns/config.json. - The TUI can store multiple named providers and switch between them with
/provider <name>. - Skills are loaded automatically from the default roots if present and appended to the active system prompt as discoverable context.
- There is also a one-shot mode for non-interactive runs:
-provider, -model, and -agent. If you pass -provider without -model, the run uses that provider’s saved default model.
If you want control over those pieces, the usual path is to embed the packages in your own Go program. See Embed hrns in your Go code.