Self-hosted service
crestalnetwork/intentkit avatar
crestalnetwork/intentkit

IntentKit: A Self-Hosted Agent Cluster Where the Agents Cannot Read Your Keys

IntentKit is an open-source, self-hosted cloud agent cluster that manages a collaborative team of AI agents for you.

6,511 stars711 forksPythonMIT

At a glance

What is it?
IntentKit is an MIT-licensed Python agent cluster that runs in the cloud, keeps agent teams isolated from your secrets, and ships with Web3 and social integrations. It is opinionated about deployment and closed to pull requests, so the fit depends on how much you want to own the runtime.
Who is it for?
Adopt IntentKit if you want a self-hosted Python agent cluster with Web3 and social skills already wired in, and you are comfortable following the deployment guide at intentcat.com/docs/deployment rather than reading the source to work out the topology. Do not adopt it if you need to patch the internals: the README states pull requests are not accepted, so any fix you write stays in your fork.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 18 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The split IntentKit is trying to occupy between local assistants and hosted agents

The README frames the agent world as two camps. Local-first tools such as OpenClaw act as personal assistants, but the README says they often require expensive hardware and extensive local permissions. Cloud-native agents, by contrast, are described as running like modern web apps: minimal local resource use, zero maintenance, high reliability. IntentKit is positioned squarely in the second camp, and the description calls it a self-hosted cloud agent cluster that manages a collaborative team of AI agents.

The target reader is therefore someone who wants cloud-style operations without handing the runtime to a vendor. That is a narrower audience than "anyone building agents". If you are prototyping a single agent on a laptop, the cluster framing adds moving parts you do not need. If you already run container infrastructure and want several agents that can call each other, with optional blockchain and social skills, the project is aimed at you. The topics list (agent-framework, agentic, blockchain, intents, web3) confirms that the Web3 angle is not incidental; it is part of the identity.

What the secret-isolation claim actually implies about the architecture

The feature list makes one claim that deserves more attention than the rest: agents are fundamentally unable to access any of your secret keys. That is a structural statement, not a permissions setting. It means the credential handling has to sit outside the agent execution path, with the agent receiving mediated results rather than raw keys.

The README does not publish the internal topology, so the concrete mechanism (how a skill authenticates on the agent's behalf, where the boundary is enforced, whether it is a separate service or an in-process broker) cannot be confirmed from the supplied material. What can be confirmed is the second half of the collaboration story: multiple agents can call and interact with each other. Combine those two facts and the interesting design question is how a call between agents preserves the same isolation. If agent A asks agent B to act, the secret boundary has to hold across that hop too. The documentation is thin here, and anyone evaluating IntentKit for production should treat the inter-agent path as the first thing to inspect in the docs rather than assume the single-agent guarantee extends automatically.

The rest of the feature list is more ordinary: an extensible skill system for adding capabilities, out-of-the-box configuration, and optional Web3 and social media integrations. The word optional matters. Nothing in the README suggests blockchain is mandatory, so a team that wants only the agent cluster can plausibly ignore that surface.

Three ways to consume IntentKit, and why the choice changes your upgrade story

The README lists three consumption modes. First, self-deployment, which the Deployment Guide at intentcat.com/docs/deployment covers. Second, as a Python library: import and extend IntentKit, or use it to add agent cluster capabilities to an existing project. Third, via API: regardless of deployment method, external applications can talk to agents through the built-in API endpoints.

These are not equivalent in maintenance cost. The API route is the loosest coupling: your application depends on endpoint behaviour, and the cluster can be redeployed underneath it. The library route is the tightest: you are importing Python and extending it, so internal refactors in IntentKit become your problem at upgrade time. The README does not describe a stability contract for the library surface, and the version history shows why that matters. Releases jump from v0.18.0 in April 2026 to v2.6.3 in June 2026, with v0.17.60 before that. A major-version jump of that size over roughly two months, on a project whose last push is dated 2026-08-28, indicates fast movement. If you embed the library, pin an exact version and read the release notes before moving.

The API path also has a security dimension worth naming. The README says you can interact with agents from external applications via built-in API endpoints, but it does not state what authentication those endpoints require by default. Treat that as an open question to answer from the docs before exposing anything.

Getting it running: what the README gives you and what it withholds

The README is deliberately short on commands. It points to the documentation site first, then to the Deployment Guide. What it does give you are the distribution channels: the PyPI package is intentkit, and the Docker image is crestal/intentkit on Docker Hub. Those two names are the concrete starting points.

So the realistic setup sequence from the supplied material is: read intentcat.com/docs, then follow intentcat.com/docs/deployment, choosing either the Python package or the container image. The README does not list environment variables, config file keys, ports, or a database requirement. It does not give a docker run line or a compose file. Anyone who needs those before committing should treat the deployment guide as required reading, not optional. This is a real friction point: a project that advertises being out-of-the-box ready and fully configured should ideally show the first command in the README, and IntentKit does not.

The library path is at least unambiguous at the package level: the PyPI badge links to pypi.org/project/intentkit, so pip install intentkit is the shape of the install. Beyond the package name, the README does not describe the import surface or an entry point, so expect to learn it from the docs.

Where IntentKit is the wrong tool

The clearest limitation is stated by the project itself: due to the rapid pace of AI development, code contributions via pull requests are not accepted. Feature requests and bug reports in GitHub Issues are welcomed instead. That is a legitimate maintainer choice, and it keeps the codebase coherent. It also means you cannot upstream a fix. If you hit a bug in the secret boundary or in a skill you depend on, your options are to wait, to work around it, or to carry a permanent fork. For a self-hosted product where you control the runtime, a permanent fork is survivable, but it converts every future upgrade into a merge exercise.

A second limitation is scope. The cluster model assumes you want several agents that call each other. If your task is one agent with one job, the collaborative layer is overhead, and a single-process agent loop would be simpler to debug. The README's own comparison concedes that local-first tools suit personal assistants; IntentKit is not trying to win that case.

Third, the Web3 and social integrations cut both ways. They are the reason the project exists for some users, and they are dead weight for others. A team building an internal research agent gains nothing from blockchain skills but still inherits the dependency surface. The README calls these integrations optional, which is the right framing, but optional features still ship in the same image and the same package.

How it differs from a general agent framework

The obvious alternative category is a general-purpose agent framework that you host yourself and wire to your own tools. The difference is in what comes preassembled. A general framework hands you primitives (a loop, a tool interface, a memory store) and leaves the operational shape to you. IntentKit hands you a cluster: multiple agents, a skill system, a built-in API, and a stated isolation boundary between agents and secrets.

That difference shows up in two places. First, collaboration is a first-class feature rather than something you build. The README states that agents can call and interact with each other, which in a general framework is usually a pattern you implement yourself and then maintain. Second, the security posture is declared rather than configured. In a general framework, keeping keys away from the model is your design decision; in IntentKit it is presented as a property of the system.

The trade is control. A general framework lets you choose the secret-handling design, the deployment topology, and the upgrade cadence. IntentKit makes those choices for you and asks you to accept them. For teams whose requirements match the defaults, that is a large amount of work avoided. For teams whose requirements do not, the framework route is less fighting.

Licence, releases and what maintenance actually costs you

IntentKit is MIT licensed, and the README points to the LICENSE file in the repository. MIT is permissive: you can use, modify and redistribute the code, including in closed products, provided the licence notice is preserved. That is a description of the licence text, not legal advice; if you are embedding IntentKit in a commercial offering, have your own counsel confirm the notice requirements and check whether the optional Web3 or social integrations pull in dependencies under different terms, since the README does not enumerate third-party licences.

The maintenance picture is the part to weigh carefully. The version history shows v0.17.60 in April 2026, v0.18.0 later the same month, and v2.6.3 in June 2026. That is a fast, non-linear progression, and the last push to the repository is dated 2026-08-28. Fast releases are good for features and bad for stability guarantees. There is no stated long-term support branch in the supplied material, and no compatibility policy for the library surface.

Practically, that argues for pinning. Pin the Docker tag rather than tracking latest, and pin the PyPI version if you import the package. Because pull requests are not accepted, you should also assume that any bug you find will be fixed on the maintainers' schedule, not yours, and budget for the fork if it is on a path you cannot route around.

Editorial conclusion

Adopt IntentKit if you want a self-hosted Python agent cluster with Web3 and social skills already wired in, and you are comfortable following the deployment guide at intentcat.com/docs/deployment rather than reading the source to work out the topology. Do not adopt it if you need to patch the internals: the README states pull requests are not accepted, so any fix you write stays in your fork. Before committing, verify three things in your own environment: that your agent configuration keeps secrets out of agent-readable storage, that the Docker image tag you pin matches the release you intend to run, and that the built-in API endpoints expose only the agents you meant to publish.

Official sources

  1. crestalnetwork/intentkit on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Community notes

Community notes