---
title: Build with Impo
description: A source-available framework for personal agents, from the conversation to the physical world.
---

Impo brings a personal agent to iOS, Android, the web and hardware you build. The framework includes the clients, an application API, durable workers, memory and context pipelines, and an open-source Gadget SDK.

Use the existing apps to experience the system. Fork the framework to change its behavior or add capabilities within the [license terms](#source-and-dependencies). Connect a board when your personal agent needs a screen, a speaker or a sensor in the physical world.

## Three ways into the framework

| Start here | What you will learn |
| --- | --- |
| [Architecture](/docs/architecture/overview/) | How clients, agents, workers and storage fit together; how a run survives a disconnected phone. |
| [Extend the framework](/docs/extend/overview/) | Where to add a tool, change instructions, schedule work or build a client surface. |
| [Extend Gadgets](/docs/gadgets/overview/) | How to adapt hardware, register commands and events, and understand the four-ring design. |

For a running development environment, go straight to the [quickstart](/docs/quickstart/).

## What comes with Impo

**A conversation that continues.** Main Chat keeps a shared history across clients. Tasks have their own conversations. A client subscribes to a run; it does not keep that run alive.

**Personal context.** Echo captures spoken context on the phone. Speaker confirmation controls which speech becomes personal context. Memory consolidates it with chat history. Feed presents useful background findings.

**Permissioned actions.** Server tools connect external apps through Composio. Native tools run on the selected phone with its permissions. Gadget commands use the account-owned gateway route.

**Multiple interfaces.** Native SwiftUI and Kotlin/Compose apps and a React Web app share an application protocol. Generated cards use a common A2UI catalog across all three clients.

## Source and dependencies

The [Impo repository](https://github.com/impoai/impo) contains the apps, API, workers and shared contracts under [Elastic License 2.0 (ELv2)](https://github.com/impoai/impo/blob/main/LICENSE). Impo is source-available, not OSI-approved open source. You can modify, redistribute and self-host it for personal or internal business use under the license terms. Offering third parties a hosted or managed service that exposes a substantial set of Impo's features or functionality requires a separate license from the rights holders, whether the service is paid or free. Preserve required notices and license-key protections, and identify changes in modified distributions. The full license governs.

Copies previously distributed under MIT retain their original MIT permissions. Third-party materials keep their own licenses. The separately maintained [Gadget SDK](https://github.com/impoai/impo-gadget-sdk) contains ESP32 firmware and the Linux runtime under Apache-2.0, with third-party exceptions documented in that repository.

The production configuration uses Rebyte for managed agent execution, PostgreSQL for application state and optional services for identity, scheduling, connectors, speech and storage. Available application source does not mean every hosted dependency runs locally. The deterministic development runtime lets you work on the core API without model credentials.

## Read the status of a feature

These guides describe the current source. A **Design proposal** label marks behavior that has not shipped. In particular, persistent user-created gadget agents, continuous camera observation and the Impo gateway's home-network tunnel remain proposed.

Code and [executable contracts](https://github.com/impoai/impo/tree/main/contracts) are the implementation reference. Each guide links to the relevant source so you can follow a capability from the product surface to its enforcement.
