Skip to content

teros-hq/teros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Teros

Teros

The open-source AI agent operating system.

Build, run, and extend AI agents that actually get things done.

GitHub Stars License GitHub Issues Discord

TypeScript Node.js MongoDB React Native Expo

Website Β· Documentation Β· Contributing Β· Discord

curl -fsSL https://get.teros.ai | bash

Requires Docker. Takes ~2 minutes.


Teros in action β€” Dev Workflow

Nua reads Sentry errors and creates Linear issues automatically


What is Teros?

Teros is an open-source platform for building and running AI agents with real tool capabilities. Think of it as an operating system for AI β€” agents live inside it, have access to tools (MCAs), connect to your services, and work for you across tasks.

Unlike chat wrappers, Teros agents are persistent, multi-tool, and autonomous. They can browse the web, write and run code, manage your calendar, send emails, interact with GitHub, deploy to Railway, and much more β€” all through a clean, extensible architecture.

You talk to an agent β†’ The agent uses tools β†’ Things actually happen

Key Concepts

πŸ€– Agents

AI personas with a personality, memory, and access to tools. Each agent has its own system prompt, preferred LLM provider, and set of installed apps. You can have multiple agents for different purposes β€” a coding assistant, a project manager, a research agent.

πŸ”§ MCAs (Model Context Apps)

The tool system. An MCA is a self-contained package that gives agents new capabilities β€” file system access, email, calendar, databases, APIs. Teros ships with 43 MCAs out of the box and makes it easy to build your own.

πŸ—οΈ Workspaces

Shared environments where agents and apps are organized together. A workspace can have multiple agents collaborating on the same project, with shared context and board-based task management.

🧠 Providers

LLM backends. Teros supports Anthropic, OpenAI, OpenRouter, Ollama (local), Zhipu, and OAuth-based providers like Claude Max and ChatGPT Pro/Plus (Codex). Each agent can use a different model.


Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           Teros                                  β”‚
β”‚                                                                  β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   WebSocket   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚   β”‚   Frontend   β”‚ ◄──────────── β”‚    Backend       β”‚            β”‚
β”‚   β”‚  React Nativeβ”‚ ──────────── β–Ίβ”‚    Node.js       β”‚            β”‚
β”‚   β”‚  (Expo Web)  β”‚               β”‚    WsRouter      β”‚            β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜               β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                                          β”‚                       β”‚
β”‚                             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚
β”‚                             β”‚            β”‚             β”‚         β”‚
β”‚                        β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”   β”‚
β”‚                        β”‚ MongoDB β”‚  β”‚  MCAs   β”‚  β”‚   LLM     β”‚   β”‚
β”‚                        β”‚         β”‚  β”‚ (tools) β”‚  β”‚ Providers β”‚   β”‚
β”‚                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Monorepo Structure

teros/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ app/          # React Native / Expo frontend
β”‚   β”œβ”€β”€ backend/      # Node.js WebSocket server
β”‚   β”œβ”€β”€ core/         # LLM adapters, conversation engine
β”‚   β”œβ”€β”€ shared/       # Protocol types, Zod schemas
β”‚   └── mca-sdk/      # SDK for building MCAs
β”‚
β”œβ”€β”€ mcas/             # 43 ready-to-use tool packages
β”‚   β”œβ”€β”€ mca.teros.bash
β”‚   β”œβ”€β”€ mca.teros.filesystem
β”‚   β”œβ”€β”€ mca.teros.memory
β”‚   β”œβ”€β”€ mca.google.gmail
β”‚   β”œβ”€β”€ mca.google.calendar
β”‚   β”œβ”€β”€ mca.github
β”‚   β”œβ”€β”€ mca.notion
β”‚   β”œβ”€β”€ mca.linear
β”‚   └── ... (43 total)
β”‚
β”œβ”€β”€ docs/             # Architecture, RFCs, runbooks
└── scripts/          # Build and sync utilities

Included MCAs

Teros ships with 43 MCAs across several categories:

Productivity gmail Β· google-calendar Β· google-drive Β· google-contacts Β· microsoft-outlook Β· notion Β· todoist Β· trello Β· monday Β· linear

Development github Β· railway Β· sentry Β· docker-env Β· bash Β· filesystem Β· playwright

AI & Media replicate Β· higgsfield Β· elevenlabs Β· perplexity Β· file-processor

Platform memory Β· scheduler Β· conversations Β· board-manager Β· board-runner Β· messaging Β· webfetch Β· datetime

Integrations canva Β· figma Β· intercom Β· homey Β· minio Β· kelify


LLM Providers

Provider Models
Anthropic Claude 3.5, Claude 3.7, Claude 4
OpenAI GPT-4o, GPT-5, o3, o4-mini
OpenAI Codex gpt-5.4, gpt-5.3-codex, gpt-5.2-codex, gpt-5.1-codex...
OpenRouter 400+ models
Ollama Any locally installed model
Zhipu AI GLM-4
Google Gemini 2.5 Pro/Flash
xAI Grok 3, Grok 3 Mini

Quick Start

Prerequisites

  • Docker and Docker Compose

Run

git clone https://github.com/teros-hq/teros.git
cd teros
cp .env.example .env
bash scripts/setup-secrets.sh
docker compose up

Open http://localhost:10002.

Development setup

# Install dependencies
yarn install

# Build all packages
yarn build

# Start MongoDB
docker compose up -d mongodb

# Terminal 1 β€” backend (with hot reload)
yarn dev:backend

# Terminal 2 β€” frontend
yarn dev:app

Building an MCA

An MCA is a directory with a manifest.json, a tools.json (auto-generated), and a src/ folder. Each tool lives in its own file. The MCA SDK handles the HTTP transport and connection to the backend automatically.

mcas/mca.my-tool/
β”œβ”€β”€ manifest.json        # Metadata, secrets, availability, runtime config
β”œβ”€β”€ tools.json           # Tool schemas (auto-generated by sync script)
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── src/
    β”œβ”€β”€ index.ts         # McaServer setup, tool registration, server.start()
    β”œβ”€β”€ lib/             # API client, auth helpers, shared utilities
    └── tools/
        β”œβ”€β”€ index.ts     # Re-exports all tools
        β”œβ”€β”€ my-tool.ts   # One file per tool
        └── other-tool.ts
// src/tools/my-tool.ts
import type { HttpToolConfig as ToolConfig } from '@teros/mca-sdk';

export const myTool: ToolConfig = {
  description: 'Does something useful',
  parameters: {
    type: 'object',
    properties: {
      query: { type: 'string', description: 'The query to process' },
    },
    required: ['query'],
  },
  handler: async (args, context) => {
    const { query } = args as { query: string };
    // context.getUserSecrets() β€” fetch API keys configured by the user
    return { result: `You asked: ${query}` };
  },
};
// src/index.ts
import { McaServer } from '@teros/mca-sdk';
import { myTool } from './tools';

const server = new McaServer({ id: 'mca.my-tool', name: 'My Tool', version: '1.0.0' });

server.tool('my-tool', myTool);

server.start();

See CONTRIBUTING.md for the full MCA development guide.


Tech Stack

Layer Technology
Frontend React Native (Expo), Tamagui, Zustand, Expo Router
Backend Node.js, TypeScript, ws, Zod
Database MongoDB 7.0
LLM Core Custom adapters per provider
Infrastructure Docker, Docker Compose
Monorepo Yarn Workspaces

Contributing

Teros is open source and contributions are welcome.

# Fork, clone, create a branch
git checkout -b feat/my-feature

# Make changes, test locally
yarn dev:backend

# Submit a PR

See CONTRIBUTING.md for guidelines, code style, and how to build and submit new MCAs.


License

FSL-1.1-Apache-2.0 β€” free for personal and non-commercial use. Converts to Apache 2.0 on the second anniversary of each release.


Built with ❀️ by @supertowers · GitHub · X

Releases

No releases published

Contributors