Troubleshooting & FAQ
Who is HENGSHI CLI mainly for?
Strictly speaking, CLI can be used by both humans and agents. In many real scenarios, it also works especially well as a stable command entrypoint for agents and automation flows.
Are skills required?
For agents, the practical answer is yes.
- If you want agents such as OpenClaw to reuse HENGSHI CLI workflows reliably, the official skills matter a lot
- They capture execution order,
--dry-runstrategy, and output conventions as reusable standard workflows
For humans typing commands directly in a terminal, the CLI itself can still work without them, so they are not a hard prerequisite in that case.
How should I choose an authentication path?
In most cases:
- Local desktop usage: prefer
hbi auth login --interactive - Agent runtimes / CI: prefer
HBI_CLIENT_ID+HBI_CLIENT_SECRET - Existing token workflows: use
HBI_TOKENdirectly
If you simply want to perform one explicit login first, you can also run:
hbi auth login --client-id <client_id> --client-secret <client_secret>How do I confirm the CLI itself is installed correctly?
Run:
hbi --version
hbi --help
hbi auth statusIf the first two commands work and the third only says that you are not logged in yet, the CLI binary is already fine.
Will CLI reuse tokens automatically after login?
Yes.
In the common login paths, CLI stores the access token in a local cache for reuse. If valid client credentials remain available in the environment, later authenticated commands can also obtain or refresh tokens automatically.
Why can I log in but still not see the expected resources?
Check these first:
- Whether
HBI_API_URLpoints to the correct instance - Whether the current identity really has access to the app, dataset, or connection
- Whether the agent runtime inherited the same environment variables as your shell
Why is --dry-run recommended before risky actions?
Because permission changes, configuration updates, and similar side-effecting operations fit naturally into a review flow. The value of --dry-run is not “one more step”; it is that the agent can explain what it plans to change, where, and with what impact before the real write happens.
Why don’t I see the Autopilot indicator on the page?
Common reasons:
- An administrator has disabled
GENERAL_CONFIG_ENABLE_SSE, so the instance no longer exposes the Autopilot / SSE feedback UI (the frontend system-preferences field then appears asenableSse=false) - The current page is outside the pages that support live sync
- The current page is mobile or does not expose a top status indicator
- The current session does not have an active SSE connection
- The current user is not in the realtime path for this page
For the current page boundary, see the “Current page boundary” section in Realtime Sync & Autopilot.
Why did CLI or an agent change a resource, but the page did not refresh?
That usually does not mean the CLI failed. More common explanations are:
- An administrator has disabled
GENERAL_CONFIG_ENABLE_SSEfor the instance - The current page is outside the realtime-sync coverage
- The changed resource does not belong to the current detail page or active list
- The current action is really an execution / execution-record / DAG flow that mainly relies on synchronous waiting or polling
- The current connection is down and the Autopilot indicator is disconnected
- A reverse proxy or gateway cut
/api/sse/subscribetoo early or buffered the SSE response - The page has unsaved local edits and should not be overwritten directly
What information should I include when troubleshooting?
At minimum:
- CLI version
- Installation method (static installer / release asset)
- Operating system
HBI_API_URL- Authentication method (interactive login / client credentials / token)
- The executed command
- Whether
--dry-runwas used - Preferably one
--output jsonresult - If UI sync is involved, also include the page path, Autopilot state, and whether the surface is mobile
Recommended troubleshooting order
- Confirm the CLI binary works
- Confirm the target instance and authentication
- Confirm the current instance, target resource, and permissions
- Only then check whether UI realtime sync is expected on the current page
This is usually much faster than starting from the browser alone.