A walk-through of every screen you’ll touch as an agent owner — from sign-in to day-to-day operations.
ownify uses Zitadel for identity. One login covers the ownify dashboard and every agent you own — no separate agent passwords to manage. New users sign up at /signup; existing users at /login.
<slug>.ownify.ai, the portal reverse-proxies your session through to the agent’s UI so there’s no second password prompt.Landing page after sign-in. Summarises your plan, monthly LLM spend, and every agent you own.
did:moltrust:… identity is anchored to the Base L2 blockchain via MolTrust. More in section 4.Create agent on the dashboard (or New agent if you already have some) opens a short form: nickname, plan, model tier. On submit ownify provisions an isolated Kubernetes namespace with its own agent runtime, LiteLLM key, TLS cert, and memory backend (klaw-memgate + MemPalace). Typically ~60 seconds. MolTrust identity is not registered at this point — it’s owner-initiated (see section 4).
portal/public/docs/user-guide/02-new-agent.png, then swap the placeholder for a <Shot> component pointing at it.klaw-tenant-<slug> with its own PVC for memory state. No tenant data is shared across agents, even for the same owner.Every ownify agent carries a verifiable identity issued and anchored by MolTrust (CryptoKRI GmbH, Switzerland). The Trust tab on each agent shows the identity state and a concise security-posture explainer.
did:moltrust:<hex>. Your agent’s public, verifiable identifier.The second card on the Trust tab explains why the agent’s own Settings panel may surface medium-severity warnings (web_host_not_loopback,sandbox_disabled) that assume a single-host install. In ownify, the equivalent controls live one layer up:
0.0.0.0:10961 inside its pod because only the klaw-portal reverse proxy can reach it. No public ingress, authenticated SSO in front of every request./home/microclaw. A mount allowlist pins bash / read / write tools to that path.memory_query / memory_upsert call is gated by klaw-memgate — Bearer-token ACL plus an operator-signed AAE envelope. Every decision is audited.Each agent has its own memory palace — a structured, searchable store organised into wings (top-level scopes) and drawers(individual memories). The Memory tab is the browsing UI.
public, shared, private, security, diary, and tenant-memory (the default wing the agent writes to). Create additional wings with + New.Memory access is deny-by-default. You grant scopes explicitly by caller —operator (you), bot (the agent itself), plus any channels or external peers you choose to add.
shared / diary / tenant-memory).The require envelope checkbox toggles between two modes:
Every ACL decision from klaw-memgate lands here within seconds. Auto-refreshes every 10 s.
allow or deny. Totals shown at the top of the page.AAE ✓ means the caller presented a valid envelope signed by the operator; blank means no envelope was attached.no rule (no matching ACL row), aae required: no envelope (enforcing mode, envelope missing), scope violations, etc.Counterpart to the Audit tab. Section 7 records what came into your agent’s memory; this tab records what your agent tried to send out. Every outbound text message — Matrix, Signal, Telegram, A2A reply — is scanned by the klaw-egress-scanner for tokens, JWTs, PEM private keys, internal cluster paths, and YAML secret signatures, before the channel adapter sends it.
/dashboard/agents/<slug>/egress.allow, redact (substring replaced inline), refuse (message blocked), alert (blocked + operator notified).token, jwt, secret-yaml, internal-path, private-key, high-entropy) and how many times. Hover for the SHA-256 prefix of the matched substring.Deep-dive doc with the full pattern set and policy explanation: Egress DLP →.
Open agent → on the dashboard takes you to <slug>.ownify.ai, the agent’s own chat UI.
v0.1.52) so you know which agent-runtime build you’re on.Inside the agent UI, the full Settings panel is where you configure channels, runtime defaults, model, skills, and integrations. Changes save to the agent’smicroclaw.config.yaml; most require a restart (use the Restart agentbutton on the ownify dashboard).
The banner at the top of Settings summarises posture. In a healthy ownify deployment you should see risk=none, warnings=0. Expand Security posture details to see the active sandbox / runtime / backend state and the per-tool access mode (host-only vs dual).
If it goes yellow or red:
Two warnings (web_host_not_loopback, sandbox_disabled) are suppressed in ownify because they assume a single-host install and don’t reflect the real posture — the Trust tab (section 4) explains the platform-managed isolation model.
The left rail of Settings lists every channel adapter the agent supports: Telegram, Discord, IRC, Slack, Feishu / Lark, Weixin, Matrix, iMessage, Email, Nostr, Signal, DingTalk, QQ, plus the built-in Web and Access / A2A integrations. Runtime settings (General, Model, Skills) sit at the top of the same sidebar.
General is where agent-wide defaults live. Every field has inline help; the highlights:
chat (isolated workspace per chat — recommended) or shared (one workspace across all chats).bash.The Model tab has three sections: the global mainprofile, a list of reusable LLM provider profiles (cloned / deleted / added as needed), and an Embedding block for semantic memory.
llm_provider + model + api_key are the minimum. ownify injects a platform-minted LiteLLM key, so leave api_key blank to keep the managed one.<channel>_provider_preset. Typical pattern in ownify: one profile per model tier (e.g. glm for cheap / fast, kimi for higher-capability), all routed through the internal LiteLLM proxy. Clone forks an existing profile; Delete removes one that’s no longer referenced.http://litellm.klaw-llm.svc.cluster.local:4000/v1 unless you know what you’re doing. This keeps all LLM traffic inside the cluster and under per-tenant budget enforcement.provider_preset), not override the model directly. Profiles are reusable, testable, and keep the main config readable as you add more bots.The Skills tab lists every skill installed in the agent runtime. A skill bundles a prompt, trigger conditions, and any resources the agent needs for a specific capability (e.g. document handling, repo operations, presentation creation). Toggle a skill on or off to change which capabilities the agent can use; changes apply immediately. The list is paginated.
A channel is how the outside world talks to your agent — Telegram, Discord, Slack, Email, IRC, Matrix, Signal, and so on. Each adapter has its own tab under the Settings sidebar. ownify runs the agent runtime and platform; channels are the bridges to where your users already are.
Across every adapter the tab layout is the same:
/newbot, paste the token"). Follow these before touching any fields.allowed_user_ids.Shared field shapes you’ll see on most adapters:
<channel>_default_account — id under channels.<channel>.accounts. Referenced by SOUL routing and downstream config.<channel>_bot_count — how many bots to render blocks for (1-10). Raise before configuring bot #2, etc.<channel>_provider_preset — optional LLM provider override at channel or bot scope; otherwise inherits the global main profile.<channel>_allowed_user_ids — privacy allowlist. Accepts CSV or JSON array. Channel-level and per-bot lists merge.<channel>_bot_N_soul_path — SOUL file from /home/microclaw/.microclaw/souls/*.md. Lets two bots on the same channel behave differently (different persona, different skill mix).Click through the adapter shapes below. The visual pattern is the same; the credentials you need to paste are what differs.
Other adapters (Matrix, Signal, iMessage, Nostr, DingTalk, QQ, Feishu / Lark, Weixin) have their own tabs following the same shape. See each adapter’s own Setup Steps for platform-specific credentials and quirks.
Every ownify agent is reachable as an end-to-end encrypted Matrix bot with the MXID @ownify-<slug>:ownify.ai. Matrix is the recommended channel when you want encryption + a rich multimodal chat experience (images, documents, voice — all decrypted client-side).
On the dashboard, expand the 🔒 Matrix chat (E2EE) disclosure on your agent’s card and click Open chat →. That opens ownify’s self-hosted Element Web at element.ownify.ai — the homeserver is already configured, the only sign-in option is Continue with ownify (Zitadel), same account as the portal. No homeserver picker, no extra password, no matrix.org detour.
Prefer a different Matrix client? The secondary Use another client →button gives you the matrix.to link — works with Element Mobile, Cinny, FluffyChat, SchildiChat, Nheko, or anything else that speaks Matrix.
Your bot’s allowed_user_ids allowlist is populated at provisioning time with your own Matrix ID (derived from your ownify account email). Inbound messages from any other Matrix user — even on your homeserver, even over federation — are silently dropped by the channel adapter before the agent sees them. No token spend, no leaked context.
To add a teammate, add their MXID to the allowlist via the agent’s Settings → Matrix tab (or edit channels.matrix.accounts.main.allowed_user_ids directly in the config), then restart the agent.
ownify.ai/.well-known/matrix/server, so other Matrix servers can discover and federate with you on the short domain.The first time you DM your bot, Element may show a yellow “unverified device” warning. The bot publishes cross-signing keys on every boot, so you can resolve the warning by clicking your bot’s device in Element and doing a SAS emoji compare (or “trust-on-first-use”). Cosmetic — messages are fully encrypted regardless.
The Billing button (top-right of the dashboard) opens the Stripe-backed billing portal — subscription, invoices, top-up credits, payment methods. Live usage is shown on the dashboard summary and in the per-agent card; hard limits come from LiteLLM so you can’t accidentally overspend.
This guide is best-effort and will drift as ownify evolves. If a screen looks different from the screenshots here, the code is authoritative — open a ticket at support@dsncon.de or check the docs index for more specific references (MolTrust, pricing, API).