Tiles AI — a phone-home-screen control plane for AI agents. Register, activate, observe, and permission tiles.
Project description
🟩 Tiles AI
A home screen for your AI agents. Lay your agents out as tiles on a board, tap one to run it, and stay in control of anything it does.
What is it?
Think of your phone's home screen — but every app is an AI agent.
- A board is a grid of tiles.
- Each tile is one agent that does a single job — "summarize my inbox", "tidy this folder", "draft a reply".
- Tap a tile and it turns green — running.
Tiles AI handles the parts around an agent — running it, watching it, asking your permission before it acts, and connecting it to your apps. You bring the agent's logic (plain Python, or wrap LangChain / CrewAI / the OpenAI SDK).
It's built for developers learning to build agents: start from a ready-made board and add your own tiles right from the screen.
Quick start
You'll need Python 3.11+. The board ships pre-built in the package:
pipx install tiles-ai # or: pip install tiles-ai
tiles up --echo # seeds a starter board here on first run
Open http://127.0.0.1:8000 — you'll see a starter board running on a free
offline brain (no API key needed). The first run drops the starter tiles and
connectors into the current folder (so you can edit them); run tiles init
yourself to seed a board without starting the server. When you're ready for a
real model, run tiles up and connect a brain from the screen.
From source (to hack on Tiles itself)
You'll also need Node 18+ to build the board once.
git clone https://github.com/Manav020201/tiles-ai && cd tiles-ai
pip install -e ".[dev]"
npm --prefix frontend install && npm --prefix frontend run build
tiles up --echo
What you can do
Right away — no API keys:
- Instant tiles — Ask, Summarize, Translate, Extract, Brainstorm.
- Your files — summarize a folder, find files, or tidy a folder (it proposes the moves; you approve them).
Add your apps — GitHub, Slack, web search, Gmail, and anything with an MCP server (local or remote), via an API token or OAuth.
All from the board — no editor required:
| ➕ Create a tile | fill a form; Tiles writes the files for you |
| 🔌 Connect an app | paste its command; Tiles reads its tools automatically |
| 🧠 Choose your model | cloud (Anthropic / OpenAI) or local (Ollama) |
| ✅ Approve before it acts | anything that writes or sends waits for your OK |
| ⏱ Schedule & chain | run a tile on a timer, or feed one tile's output into another |
| 👀 Observe | live activity per tile, and clear errors as you go |
How it works
Three ideas:
| Concept | What it is |
|---|---|
| Tile | an agent — a model + instructions + a permission level. The thing you tap. |
| Connector | a reusable connection to one app (e.g. GitHub). Many tiles can share it. |
| Brain | the model that powers tiles. Set one once; a tile can pin its own. |
Permissions are built in. Every tile has a level: read-only (never acts), draft (proposes actions you approve), or autonomous. Green means running, not unsupervised.
Architecture (for the curious)
React board ──HTTP/SSE──▶ FastAPI ──▶ runtime ──▶ permission gate ──▶ connector ──▶ app
└──▶ model adapter ──▶ brain (cloud / local)
Connectors talk to apps over MCP (stdio or HTTP). The full design is in SPEC.md.
Make your own tile
The easy way: click ➕ New tile on the board, fill the form, and open the
generated handler.py to customize.
In code, a tile is a small folder with a manifest and one method:
from tiles_ai.contracts import ActionPlan, Tile
class MyTile(Tile):
async def run(self, input, context) -> ActionPlan:
answer = await context.model.complete(str(input))
return ActionPlan(result=answer)
Full guide, including how to connect a new app: docs/AUTHORING.md.
Docs
- SPEC.md — the design and the tile contract
- docs/AUTHORING.md — build a tile or a connector
- CONTRIBUTING.md — dev setup and how to help
- CHANGELOG.md — what's new
Status
Active development; well-tested with CI on Python 3.11 and 3.12.
Already here: tiles chain (sequential flows), run on an interval schedule, and connect via OAuth (authorization-code) or API keys.
Refinements still to come: branching / fan-out flows (only linear chains today) · cron and event triggers (only intervals today) · automatic OAuth token refresh. Out of scope for now: hosting and multi-user.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tiles_ai-0.1.1.tar.gz.
File metadata
- Download URL: tiles_ai-0.1.1.tar.gz
- Upload date:
- Size: 162.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
956fd17023402619bf6c85ca9e7acdc0b7280208b7a6c8dc209fc2c38ede9f1a
|
|
| MD5 |
1e1ecbdb5b5076692b6f7f714d63bf06
|
|
| BLAKE2b-256 |
34a5508e8081365390c6829e3aed3cfec28531ca0651cd902c4254607005c6ec
|
Provenance
The following attestation bundles were made for tiles_ai-0.1.1.tar.gz:
Publisher:
release.yml on Manav020201/tiles-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tiles_ai-0.1.1.tar.gz -
Subject digest:
956fd17023402619bf6c85ca9e7acdc0b7280208b7a6c8dc209fc2c38ede9f1a - Sigstore transparency entry: 1822392913
- Sigstore integration time:
-
Permalink:
Manav020201/tiles-ai@5c7d9b03fccada5ee17ad04aed8302f6c617b92e -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Manav020201
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c7d9b03fccada5ee17ad04aed8302f6c617b92e -
Trigger Event:
push
-
Statement type:
File details
Details for the file tiles_ai-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tiles_ai-0.1.1-py3-none-any.whl
- Upload date:
- Size: 175.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07b4e58ba211435dd377f8839ff60cbca1b3a0124be3be1484e9fc13be8b0540
|
|
| MD5 |
cb8a034883902ce5725eb2d02db00bc4
|
|
| BLAKE2b-256 |
3d72262b9d3ff0b9fac755a84914dbb7ce8b00c7a785af5527759203b853f9ef
|
Provenance
The following attestation bundles were made for tiles_ai-0.1.1-py3-none-any.whl:
Publisher:
release.yml on Manav020201/tiles-ai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tiles_ai-0.1.1-py3-none-any.whl -
Subject digest:
07b4e58ba211435dd377f8839ff60cbca1b3a0124be3be1484e9fc13be8b0540 - Sigstore transparency entry: 1822392925
- Sigstore integration time:
-
Permalink:
Manav020201/tiles-ai@5c7d9b03fccada5ee17ad04aed8302f6c617b92e -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Manav020201
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c7d9b03fccada5ee17ad04aed8302f6c617b92e -
Trigger Event:
push
-
Statement type: