Skip to content

CapyAgent an agent that walks into your business systems itself. Go core, Python connectors, your data stays with you.

News

What is happening
with the project

Short notes about decisions and findings. Not announcements, but things that actually happened and changed the code.

site

The site became bilingual

Rebuilt from one page into nine, in Russian and English. Content lives in JSON per locale, and the build fails itself if the locales diverge on keys: a page with half of it untranslated looks fine, and the visitor is the one who notices.

numbers

Tests recounted from the code

910 tests: 639 in the core and 271 in connectors. The previous site showed 905, and the README still says 737. A number on a public page comes from the code, not from a neighbouring document.

naming

The agent people talk to is called CapyAgent

Internally the platform stays InterClaw: paths, environment variables, the service unit and the Go module. Renaming the internals breaks every existing installation, and fixing that means a migration, which on a client's machine is separate work with a separate risk.

Repository

browser

The local browser was verified on real Chromium

Browser actions are allowed only on sites from the list, only with confirmation, and only via a link from a snapshot. Before clicking, the connector compares the label against the live page: what you confirmed is exactly what gets clicked.

audit

Checks that written code is actually wired up

Over three days the same thing happened eleven times: code written, covered by tests, green in CI - and nothing to invoke it. Twice it was inside tasks already marked done. Now make check-wiring fails the build instead of adding a warning to a list that gets read exactly once.

security

The audit closed 21 findings

The most expensive one: the /call command had its own road into a connector, bypassing the deny list, disabled tools and confirmations. Closed. Execution now records an outcome in the journal: a trail with consent and no outcome does not answer the only question that matters - did it actually happen.

service

The core runs as a service on a production server

Scheduled jobs are executed by the agent, and a primary model failure switches to the fallback. A channel crash now brings the process down: previously the service showed as active while the bot stayed silent for days, and we heard about it from the client.

comparison

Compared against three foreign cores

Hermes, OpenClaw and GoClaw were studied after our own version was written, not before. Comparing beforehand produces a copy; comparing afterwards shows what you missed. It found three places where load knocked out the dialogue.

decision

We build our own core, not a fork

Forking any of the three means an endless chase after upstream: the neighbouring cores push daily. The core language is Go because of memory and because a client receives one binary. Connectors sit outside the core as separate MCP servers: they will outlive a change of core, and that is the product.

Want this by email?

There is no newsletter yet. Write to us and we will call you when something worth your attention appears.