{"id":27730048,"url":"https://github.com/kortix-ai/suna","last_synced_at":"2026-06-27T06:01:11.031Z","repository":{"id":258387640,"uuid":"868173144","full_name":"kortix-ai/suna","owner":"kortix-ai","description":"The Company AI Command Center","archived":false,"fork":false,"pushed_at":"2026-06-21T09:03:40.000Z","size":232933,"stargazers_count":19867,"open_issues_count":6,"forks_count":3418,"subscribers_count":154,"default_branch":"main","last_synced_at":"2026-06-21T09:05:52.768Z","etag":null,"topics":["ai","ai-agents","llm"],"latest_commit_sha":null,"homepage":"https://www.kortix.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kortix-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-10-05T17:01:01.000Z","updated_at":"2026-06-21T09:03:44.000Z","dependencies_parsed_at":"2024-10-18T19:17:51.874Z","dependency_job_id":"aaeb18b0-21f6-4fb1-a86f-ac05c9e1b29e","html_url":"https://github.com/kortix-ai/suna","commit_stats":null,"previous_names":["kortix-ai/agentpress","kortix-ai/suna"],"tags_count":95,"template":false,"template_full_name":null,"purl":"pkg:github/kortix-ai/suna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kortix-ai%2Fsuna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kortix-ai%2Fsuna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kortix-ai%2Fsuna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kortix-ai%2Fsuna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kortix-ai","download_url":"https://codeload.github.com/kortix-ai/suna/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kortix-ai%2Fsuna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34843147,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","llm"],"created_at":"2025-04-28T05:02:13.232Z","updated_at":"2026-06-27T06:01:11.026Z","avatar_url":"https://github.com/kortix-ai.png","language":"TypeScript","funding_links":[],"categories":["AI Agent Frameworks","智能体 Agents","Repos","TypeScript","Framework","Agent","Architecture \u0026 Workflow \u003ca id=\"architecture--workflow\"\u003e\u003c/a\u003e","A01_文本生成_文本对话","HarmonyOS","开源项目","Orchestration","Open Source Agents","Personal Assistants \u0026 Conversational Agents","🤖 AI \u0026 Machine Learning","ツール"],"sub_categories":["General Agent Frameworks","Dynamic Single‑Agent Workflow \u003ca id=\"dynamic-single-agent-workflow\"\u003e\u003c/a\u003e","大语言对话模型及数据","Windows Manager","Agent Framework","Virtual Assistants","エージェント型コーディング環境"],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"apps/web/public/kortix-symbol.svg\" alt=\"Kortix\" width=\"80\" /\u003e\n\n# Kortix\n\n**The AI command center for your company**\n\n**One repo. One config. A workforce of AI agents that does the real work — and everything is code you own.**\n\n[![GitHub stars](https://img.shields.io/github/stars/kortix-ai/suna?style=flat\u0026color=111111\u0026label=Stars)](https://github.com/kortix-ai/suna/stargazers)\n[![Version](https://img.shields.io/badge/version-0.9.5-111111.svg)](VERSION)\n[![Docs](https://img.shields.io/badge/Docs-kortix.com%2Fdocs-111111.svg)](https://kortix.com/docs)\n[![PRs welcome](https://img.shields.io/badge/PRs-welcome-111111.svg)](#contributing)\n\n[Website](https://kortix.com) · [Documentation](https://kortix.com/docs) · [Cloud](https://kortix.com) · [Manifesto](MANIFESTO.md)\n\n\u003cbr /\u003e\n\n\u003cimg src=\"apps/web/public/images/landing-showcase/platform/01-command-center.png\" alt=\"The Kortix command center\" width=\"900\" /\u003e\n\n\u003c/div\u003e\n\n---\n\n## Quickstart\n\nThree commands. Build your company like a codebase, then bring it live.\n\n```bash\n# 1 · Install the CLI\ncurl -fsSL https://kortix.com/install | bash\n\n# 2 · Scaffold a project — creates kortix.toml + your agents, skills and runtime config\nkortix init\n\n# 3 · Ship it — pushes your repo and brings the whole thing live in the cloud\nkortix ship\n```\n\nThat's the loop. From here:\n\n```bash\nkortix sessions new --prompt \"Summarize this week's commits and open a change request\"\nkortix cr ls          # review what an agent proposes — merge to keep it\nkortix chat           # talk to a session's agent from your terminal\n```\n\nPrefer zero setup? Sign up at **[kortix.com](https://kortix.com)**, create a project, and start a session — nothing to install. Full command surface: **[CLI reference](https://kortix.com/docs/reference/cli)**.\n\n---\n\n## A company is going to be a git repository\n\nNot as a metaphor — literally something you can clone. Inside it: your agents, the skills they've built up, the way the work actually gets done, every fact the company has learned, and the definition of the machines it all runs on. **Versioned. Diffable. Owned outright.** Running on its own around the clock, opening pull requests against itself, getting better at being your company while everyone's asleep.\n\nMost AI tools give you a chat box. Kortix gives you a **command center** — one place where your agents, skills, integrations, automations and memory all live, and a workforce of agents that produces real output (decks, reports, code, replies, deployed work), not just chat. It feels as simple as a chat app. Underneath, everything is code you own.\n\n```\nproject  (git repo + kortix.toml)\n   └─ session ──\u003e isolated cloud sandbox on a branch named after the session\n                     └─ agent (OpenCode) works, commits, pushes\n                           └─ change request ──\u003e you review \u0026 merge ──\u003e main\n```\n\n- Every **session** runs in its own disposable Linux sandbox on its own branch — the agent can install, run and break anything; only what it commits survives.\n- Work reaches `main` only through a **change request** you approve, so the company self-improves one reviewed change at a time.\n- Run **thousands of agents in parallel** on the same config, each fully isolated, each feeding work back through change requests.\n\n---\n\n## What's in the command center\n\n| | |\n| --- | --- |\n| **Agents** | Markdown personas with a scoped reach into tools — one per role or task. Installable in a click, able to rewrite themselves. |\n| **Skills** | Reusable know-how that encodes how your company does a job. Written once, shared into every session. |\n| **Connectors** | 3,000+ apps in a click — plus MCP, OpenAPI, GraphQL and raw HTTP — brokered server-side through one scoped token. |\n| **Secrets** | Encrypted, scoped per person and group, injected into sandboxes at runtime, never exposed to the model or logs. |\n| **Channels** | Slack and chat surfaces — one click stands up a bot that starts sessions where your team already works. |\n| **Triggers** | Cron and signed webhooks that spawn sessions automatically — every morning, or the instant something happens. |\n| **Memory** | A living company brain — plain files today, a system that compounds what it learns over time. |\n\nWork runs three ways: **on-demand** (ask in chat, get it now), **human-assisted** (the agent works and checks in for the calls that matter), and **automated** (runs on a schedule or trigger, end to end).\n\n---\n\n### [`apps/web/`](apps/web/) — Dashboard \u0026 marketing\n\n- **Open \u0026 yours.** Open source and self-hostable — your data, your models, your infrastructure. No lock-in, fully auditable.\n- **A workforce, not one assistant.** Org-scale specialist agents that run in parallel and compound a shared memory.\n- **Real work, not chat.** Agents run on real computers and return finished deliverables — and take real actions in your tools.\n- **Everything is code.** Versioned, reviewable, portable, governable — never a black box. `grep` your entire company.\n- **Bring your own models.** Any provider, your own keys — or the ChatGPT, Claude, or Cursor subscription you already pay for.\n\n---\n\n## Self-host\n\nKortix runs on your own infrastructure — laptop, VPS, your VPC, or fully air-gapped. Start a production-style local instance from Docker images, then switch the CLI between Cloud and your own hosts:\n\n```bash\nkortix self-host start\nkortix hosts use local     # ↔  kortix hosts use cloud\n```\n\nThe first interactive setup asks only for the integration credentials that unlock managed git, GitHub access, and Pipedream connectors — ports, local URLs, keys and Docker Compose defaults are generated for you.\n\nManaged hosting is **[Kortix Cloud](https://kortix.com)**.\n\n---\n\n## Enterprise \u0026 security\n\nBuilt to survive a security review, not slip past one: microVM isolation · members, groups \u0026 roles that match your org · per-resource permissions for people **and** agents · a secrets manager (encrypted, injected at runtime, never exposed) · a full audit trail · human approval gates on sensitive actions · on-prem, VPC, or air-gapped deployment.\n\n---\n\n## Contributing\n\n- **Open \u0026 yours.** Source-available and self-hostable — your data, your models, your infrastructure. No lock-in, fully auditable.\n- **A workforce, not one assistant.** Org-scale specialist agents that run in parallel and compound a shared memory.\n- **Real work, not chat.** Agents run on real computers and return finished deliverables — and take real actions in your tools.\n- **Everything is code.** Versioned, reviewable, portable, governable — never a black box.\n\n```bash\npnpm install\npnpm dev            # web + API (scripts/dev-local.sh)\npnpm dev:web        # web app only\npnpm dev:api        # API only\npnpm dev:sandbox    # build the local sandbox image\npnpm build          # build all packages\npnpm nuke           # tear down the local Docker environment\n```\n\n#### Secrets\n\nAPI secrets live in **`apps/api/.env`, encrypted with [dotenvx](https://dotenvx.com)** and committed to the repo — the ciphertext is safe in git; only the private decryption key is secret. To run locally you need that key, which we keep off-device in **[Dotenv Armor](https://dotenvx.com/armor)**:\n\n```bash\ncurl -sfS https://dotenvx.sh/armor | sh   # one-time install\ndotenvx-armor login                        # grants this machine decryption\npnpm dev                                   # dev-local.sh decrypts apps/api/.env on boot\n```\n\nFour encrypted environments for local dev, one file each (each with its own keypair in `apps/api/.env.keys`):\n\n| Run | Env | File | API backend |\n| --- | --- | --- | --- |\n| `pnpm dev` | local | `apps/api/.env` | 100% local stack (local Supabase, test Stripe) + web + tunnel |\n| `pnpm dev:dev-env` | dev | `apps/api/.env.dev` | dev stack — dev DB, test Stripe, dev keys |\n| `pnpm dev:staging-env` | staging | `apps/api/.env.staging` | staging stack — staging DB, test Stripe, staging keys |\n| `pnpm dev:prod-env` | prod | `apps/api/.env.prod` | prod stack — prod DB, **LIVE** Stripe |\n\nVerify all four decrypt + are separated: `pnpm test:envs`. Add/rotate a secret: `pnpm dlx @dotenvx/dotenvx set KEY value -f apps/api/.env[.dev|.staging|.prod]`, then commit. The env-specific run scripts use `dotenvx run --overload` so the selected profile wins over exported local cloud credentials.\n\nThese files are for **local development only**. The deployed **production** infra loads its real env from **AWS Secrets Manager** at runtime — `apps/api/.env.prod` is just for running locally against the prod backend and does not affect what prod runs. `apps/web` has the **same four encrypted profiles** (`apps/web/.env` / `.env.dev` / `.env.staging` / `.env.prod`, mostly public `NEXT_PUBLIC_*`). Only `supabase/.env` (local Supabase CLI) stays a plain gitignored file.\n\nCI doesn't need any of these today (builds use placeholders, and the `secret-scan` workflow allowlists the encrypted file via `.gitleaks.toml`). If a future job needs real values, add the dotenvx private key as a single `DOTENV_PRIVATE_KEY` GitHub Actions secret and prefix the step with `dotenvx run -- …` — it decrypts `apps/api/.env` in memory, no other secrets required.\n\nApps live under `apps/` (`web`, `api`, `cli`, `desktop`, `mobile`, `sandbox`); documentation source is in `apps/web/content/docs`. The whole platform ships under one version (root `VERSION`) — API, frontend, CLI and desktop release together as `vX.Y.Z`. Issues and pull requests are welcome.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\u003cbr /\u003e\n\u003cstrong\u003eWe're building the thing that takes a company from human to AGI — and lets it keep every byte of itself on the way there.\u003c/strong\u003e\n\u003cbr /\u003e\u003cbr /\u003e\n\u003ca href=\"https://kortix.com\"\u003ekortix.com\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkortix-ai%2Fsuna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkortix-ai%2Fsuna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkortix-ai%2Fsuna/lists"}