Skip to content

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

v0.9.0 · closed beta

An agent that works
inside your systems

Ask in plain words. It decides where to go, finds out how your particular account is built, checks the export for completeness, and answers to the point. Not a digest from someone else's analytics, but an answer assembled on your data.

One binary on your machine. History, notes and jobs sit next to it as ordinary files. Nothing leaves: there is no telemetry sending that is «off by default», there is none in the code at all.

  • Bitrix24, Direct and UIS verified on production accounts
  • Windows: cross-build passes, no live machine to run it
  • Android: a skeleton, never once built
11connectors to business systems
910tests: 639 in the core, 271 in connectors
0external dependencies in the core
1binary, no runtime and no cluster

The numbers were recounted from the code on 22.08.2026, not copied from the previous version of this page. Core tests run with -race, connector tests run against a local HTTP server.

01 / Problem

A normal integration knows the API methods.
This one knows where they lie

Every connector is written around specific ways of losing data silently. Not «we support the API», but «here are four places where the export leaks, and here is a check for each».

01

A batch request loses pages silently

Bitrix serves batch with halt=0 and keeps going after an error inside the batch. Code that only looks at the response status gets an incomplete export and treats it as complete.

batch completeness check

02

An error with status 200

Direct queues heavy reports and answers 201 or 202. Treat «not 200» as a failure and you declare keyword reports unavailable. Treat 200 as success and you never read the error in the body.

parse the body, not the status

03

Completeness that is not there

The service declared 4,812 records and returned 3,900. The honest answer is to name the gap and stop. An ordinary library returns whatever it managed to collect, and you find the difference a month later in a report.

declared against received

04

Account structure cannot be guessed

Fields, pipelines, dictionaries and smart processes differ for everyone. The agent first discovers how your portal is built and only then counts. A schema assumed in advance breaks on the second client.

discover before analysis

02 / Capabilities

What the agent does

01 memory

Remembers between conversations

Durable facts about you and about the work are kept for the long run and apply across every chat at once. Learned in Telegram - remembered in the browser.

02 schedule

Works on a schedule

«Every Monday at 9:00 put together a summary» - and it assembles the summary itself, visits the systems it needs and sends the result.

03 policy

Asks before anything dangerous

Sending an email, editing a deal, writing off money. All of it is held and shown to you before it happens, with the exact operation name and its arguments.

04 channels

Lives where you are

Telegram, Discord, the Bitrix chat, a page in the browser, the extension panel and the terminal. Each channel keeps its own history.

05 integrations

Russian services out of the box

Bitrix24, Yandex.Direct and Mail, UIS, Roistat, Calltouch, VK, ZenMoney. A new connector is one Python file with no dependencies.

06 perimeter

Runs on your side

One binary on your machine or server. Data sits as ordinary files, keys are passed through the environment rather than through process arguments.

03 / Systems

Connected systems

The live-verification status is stated honestly. «Per API contract» means the code is written and covered by tests, but we never had a production account.

Bitrix24 portal structure, fields, dictionaries, deals and smart processes production portal
Yandex.Direct account structure, campaigns, groups, reports and API limits production account
UIS / Comagic calls, forms and the quality of source tagging production account
Web search Yandex Search API v2, SearXNG and Brave under one result shape verified live
Browser reading script-rendered pages, and actions behind confirmation verified live
Yandex.Mail folders, search and reading messages tests exist, no access
ZenMoney accounts, balances and transactions; writes require confirmation tests exist, no access
VK community messages and Long Poll state per API contract
Roistat analytics and comparison of attribution models per API contract
Calltouch calls, requests and sources; ships as a plugin verified live
Alice a voice skill as one more surface for the conversation per API contract
MeetScribe meeting transcripts and minutes per API contract

04 / How it works

How this is put together

01

A question in plain words

Telegram, Discord, the browser panel, a web page or the terminal. No command to learn.

02

The agent picks a source

It looks at which services are connected and decides where to go. What is not on the list it does not think about and does not invent.

03

Structure discovery

First it works out how your account is built: fields, pipelines, dictionaries. Only then does it count.

04

Completeness check

It compares the actual output against the declared one, catches errors in the response body, accounts for limits and pagination. A gap is named, not smoothed over.

05

Answer and trail

It shows which systems it visited. Recurring work goes on a schedule, important things are remembered for the long run.

05 / Quick start

From zero to the first answer

Requires Linux, Go 1.26+, Python 3.12+ and Git. A step-by-step walkthrough is on the quick start page.

bash
# build and configure$ git clone https://github.com/nobi-k/interclaw && cd interclaw$ make build$ ./bin/interclaw setup # check that the connector answers$ ./bin/interclaw connector tools -- python3 connectors/bitrix24/server.pycrm_discover_portal, crm_fields, crm_list, crm_smart_process, ... # start the service and open the chat$ ./bin/interclaw servelistening on 127.0.0.1:8790, telegram channel alive

The address is nailed to 127.0.0.1 in the code rather than taken from configuration: the core holds keys to other people's CRMs, and there is nothing to open a port for.

06 / Security

Security is not bolted on the side

The audit on 19.08.2026 closed 21 findings. Below are not promises from the model but properties of the code, each with a test.

01 confirmations

Dangerous work is held

Anything that changes data in an external service is shown before it runs: the exact operation name and its arguments. Consent is single-use and only inside its own chat.

02 injection

Someone else's data is data, not commands

The contents of emails and records are wrapped in a boundary with a random marker. An instruction that arrives inside a stranger's email does not become a command.

03 isolation

A connector sees only its own

Each connector receives only its own environment variables. Credentials for one service are invisible to the connector of another.

04 telemetry

Nothing leaves the machine

Usage counters are anonymous and stay on your machine. Telemetry sending does not exist in the code.

05 shell

Shell commands are not executed

A deliberate decision, not an unfinished feature. An agent with access to other people's systems should not be able to run anything it likes on the machine.

06 fatigue

It asks where a mistake has a price

Reading, searching and parsing need no confirmation. A question asked for the twentieth time in a day turns into a «yes» button that gets pressed without looking.

07 / Questions

Frequently asked

Does my data go to your server?
No. The agent runs on your machine, history and notes sit in a local directory. The only outbound traffic goes to the services you connected yourself and to the model provider you chose.
Which model does it use?
The one you pick: MiMo, any OpenAI-compatible API, YandexGPT or GigaChat. The key is passed through the environment. YandexGPT, GigaChat and Codex have so far been checked without live keys, and we mark that honestly as unverified.
How is this different from a ready shell like Hermes or OpenClaw?
The difference is not the shell but the connectors to Russian services, and the fact that each of them is written around specific ways of losing data. A Go core gives one binary with no runtime: a client gets it installed on a laptop, not on a cluster.
Can I take the connectors alone?
Yes. Every connector is an ordinary MCP server over stdio on the Python standard library. They work in CapyAgent, in Hermes, and in any compatible MCP host.
Is this open source?
The licence is CC BY-NC 4.0: use and modify freely, resale is not permitted. The repository is still closed - a client's portal domain remains in the commit history. We are cleaning it before opening.
What does not fully work right now?
Windows builds through cross-compilation, but we have no live machine to run it on. Android is a skeleton that has never been built. There is no multi-tenant SaaS in the core: this version targets a personal or dedicated perimeter.

08 / Apply

Apply for the closed beta

Tell us which systems you run and what you would like to ask the agent. We answer ourselves, with no funnel in between.

By submitting the form you agree to the processing of the contact details you provided so that we can answer you. We do nothing else with them.