hermes web
put your Hermes agent on the web
what it does
- exposes a local Hermes agent as an authenticated web API
- scoped API keys, restrictive by default
- user identities with optional agent anonymity
- typed client & React hooks, 100% test coverage
packages
- @in-th3-l00p/hermes-web-api — authenticated API server & management CLI
- @in-th3-l00p/hermes-web-ts — TypeScript client
- @in-th3-l00p/hermes-web-react — React hooks
quick start
# packages live on GitHub Packages — point the scope at it once echo "@in-th3-l00p:registry=https://npm.pkg.github.com" >> ~/.npmrc # on the machine running your Hermes agent npm i -g @in-th3-l00p/hermes-web-api hermes-api keys create --name my-app \ --scope chat:invoke --scope sessions:read hermes-api serve # in your app npm i @in-th3-l00p/hermes-web-ts @in-th3-l00p/hermes-web-react
react hooks
a full chat with your agent is one hook:
import { HermesClient, useChat } from "@in-th3-l00p/hermes-web-react";
const client = new HermesClient({ baseUrl: "https://agent.example.com" });
function Chat() {
const { messages, streaming, send, edit, react } = useChat({ client });
return <Messages items={messages} onSend={send} />;
}
streaming, attachments, reactions and edits included — see the examples.