Install Tico
Start on your own computer with Docker, or install on a Linux server for your team.
The installer downloads the latest release. The full reference is docs/install.md in the repo.
Try locally with Docker
Use a Mac with Docker Desktop installed and running, or a Linux computer. No domain or sign-in provider is needed. On Linux, the installer can install Docker. It prints a private owner sign-in link:
curl -fsSL https://github.com/ticoteam/tico/releases/latest/download/install.sh | sh -s -- --local --owner-email you@example.comTico then runs at http://127.0.0.1:8765, on that computer only. Add a domain and sign-in later, when others need in.
Finish setup
Open the private owner sign-in link printed by the installer. It opens Finish setup. Keep the link private: it can be reused to sign in as the owner. If you lose it, read the token in your install directory with docker compose exec server cat /data/local-owner.token and open http://127.0.0.1:8765/api/v2/local-signin?token=<token> on this computer. Use your chosen port if you changed it.
- Choose AI providers. Pick one, or use Skip for now. Bots wait until you add a provider in Settings → AI providers.
- Name your team and describe what it does.
- Choose groups and suggested bots. For a first result, choose Operations and Project Coordinator. You can skip other suggestions and add bots later.
- Add computer. Choose A Linux or cloud server (Docker), press Add computer, and run the generated command on this same computer. It joins the local server’s Docker network; no domain is needed. Wait for it to show online. You can also create the team first and add the computer later in Settings → Computers.
- Connect an external agent if you want one, or skip it.
- Review and press Create my team. Tico adds Assistant, BotOps, Librarian and Goal Manager automatically; selected starters wait as Needs setup.
Only the owner can sign in to a local install. Adding a human in Settings → Humans sends no email; add a domain and sign-in before others can sign in. Continue below to get a first result.
Get your first result
- Connect a model. If you skipped providers, choose one in Settings → AI providers, then select the bot’s model in Settings → Bots. In Settings → Computers, wait for its harness to install and use Sign in beside Codex or Claude Code. Finish the provider flow and wait for ready. For an API key, open Tools → Credentials, enter the provider’s variable name (for example
OPENAI_API_KEY) in the variable field, and grant the model key to Every computer. Tool credentials are granted to each bot separately. - Give it a meeting. In Meetings → Add notes, name it “Example launch meeting”, choose Paste under Transcript, and paste the example below. Leave Private off for this fictional team meeting, then press Add notes. This needs no Zoom account or other external Tool.
- Set up Project Coordinator. Choose Project Coordinator from Operations during Finish setup, or add it with Settings → Bots → Add from template. Open its page and press Set up. Tell it: “Cover this example team meeting only. Send the summary to me only. Skip private meetings. Leave unclear owners and dates open and ask me. No customer recap.” Answer any remaining questions and review its first draft.
- Finish one task. In Tasks → New task, assign Project Coordinator: “Summarize the example launch meeting in under 150 words. List its decision, action items with the named owners and dates, and open questions. Quote the notes; create no follow-up tasks for this exercise.” Read the result in the task and mark it done if it is still open. Success is a reviewed summary and a completed task, with the computer online and no blocking Health issue.
00:00 Ana: We will launch the example app on October 15, 2026.
00:15 Sam: I will draft the launch checklist by October 8, 2026.
00:30 Ana: I will review the checklist by October 9, 2026.
00:45 Sam: Who will write the help page? We have not chosen an owner or date.No GitHub account is needed. Bots draft messages to outsiders until sending is turned on for that bot.
If the bot is waiting
- Add an AI provider: choose one in Settings → AI providers and select the bot’s model in Settings → Bots.
- Offline: check Settings → Computers and keep the joined computer running.
- Sign-in rejected: repeat the computer’s Sign in flow for a subscription. For a stored model key, replace it in Tools → Credentials and check its variable name and Every computer grant.
- Needs setup: open the bot’s chat, press Set up, and finish its questions.
- Missing Tool or Credential: use the bot’s connection or Credential card and grant the Credential to that bot.
More help: Setup troubleshooting and Harnesses.
Pin a release
To choose a release, add --version vX.Y.Z to the installer command after the --. Replace vX.Y.Z with a published release from GitHub Releases. Otherwise it installs the latest release. To upgrade a pinned install, run the target release’s installer; pulling the old tag keeps the old version. See Manual updates.
Install for your team
Before you start
- A Linux server with about 2 GB of memory and 10 GB of disk. Ubuntu 24.04 or Debian 12 is tested. You need root or
sudo. - A domain you can add a DNS record to, like
tico.example.com. - A way to sign in: a Google or Microsoft account that can create an OAuth client. No public IP address? Use a Cloudflare Tunnel instead.
- A model subscription or API key for your bots, such as ChatGPT or Claude. Choose it during Setup, or sign in to your model subscription on each bot computer.
Where to get a server
Any Linux computer works. These are cheap, always-on options (list prices as of September 2026; check before you buy):
| Provider | Size | About |
|---|---|---|
| Hetzner Cloud | cx23 or cax11, 4 GB | €5.50–6/month plus IPv4 |
| DigitalOcean | s-1vcpu-2gb, 2 GB | $12/month |
| AWS EC2 | t4g.small, 2 GB | $18/month with disk and IPv4 |
Allow inbound ports 80 and 443 in your provider’s firewall (not needed with a tunnel).
On AWS: the server must be in a public subnet (its route goes to an internet gateway). The computers that run bots can be private. The wizard checks this.
Run the installer
Open a shell on the server and run:
curl -fsSL https://github.com/ticoteam/tico/releases/latest/download/install.sh | sh
It installs Docker, checks the download, and starts the setup wizard. The wizard asks five things:
- How humans reach it: Caddy (automatic HTTPS) or a Cloudflare Tunnel (no open ports).
- Your domain: it finds which provider really runs your DNS and shows the exact record to add. It waits for DNS before asking for a certificate.
- Sign-in: Google or Microsoft. Paste this redirect address into your OAuth client exactly:
https://tico.example.com/auth/callback. - Your team: name and owner email. Use the email you’ll sign in with.
- Backups: keep them on the server, or use an S3 or R2 bucket. On AWS, create the bucket first from your laptop, then answer existing:
Run it from a copy of the Tico repo, with your AWS credentials.python3 -m setup backup-storage --domain tico.example.com --aws-region us-west-2
| Type | Name | Value |
|---|---|---|
| A | tico.example.com | Your server’s IP address |
What you’ll see
The wizard waits until DNS is live everywhere, then gets an HTTPS certificate, which takes 10–30 seconds. It ends with:
Done. Open https://tico.example.com and sign in as you@example.com.Open it, sign in, and follow Finish setup above. Add a computer and connect a model to get your first result.
If something goes wrong
- No HTTPS certificate: DNS wasn’t ready. Check the record is at the provider the wizard named, then run
docker compose restart caddyin/opt/tico. - “redirect_uri_mismatch”: the OAuth client must list
https://<your domain>/auth/callbackexactly. - “Not on the roster”: sign in with the owner email you gave the wizard.
- The site times out from outside, but the server looks fine: on AWS, it’s probably in a private subnet (its default route goes to a NAT gateway). Move it to a public subnet.
- Bots don’t answer: open Settings → Health → Models. A wrong or revoked API key shows as rejected, with the fix.
- Check everything again:
cd /opt/tico && sudo ./scripts/tico-setup doctor --domain tico.example.com
Running the installer again is safe. It resumes a stopped wizard and never rewrites your settings.
Next
Get your first result, then read Using Tico. Add computers for your bots. Can’t use this path? See Advanced installs.