About this project

ainess is a desktop application (Tauri 2, MIT licensed) that turns the AI coding CLIs you already have installed into a coordinated team. Rather than bundling a model or an API key, it detects and drives existing tools — Claude Code, Antigravity, GitHub Copilot CLI, Gemini CLI, Codex CLI, opencode, Ollama and Aider — and can install most of them from a settings panel. A "custom" agent type can run any command, with {prompt} substituted into its arguments. Sessions and credentials stay where each CLI keeps them; the app states it never asks for, stores or reads a key. Windows is the platform it is developed and tested on. How the orchestration works Agents are one-shot CLI processes. Each invocation is a "run", and conversations persist across runs because every provider is resumed through its own session id. Agents are arranged in a hierarchy with roles: a planner that reasons, splits work and delegates but does not implement; implementers that do the work; and reviewers that check it. Delegation happens through a fenced block in the planner's answer, which the orchestrator parses into runs and feeds back as results — a cycle called a round, with a configurable maximum. Tasks must stand on their own, since a child agent does not see the planner's conversation. An agent can also pause and ask the user a question with options, and the run continues in the same session once answered. Inside the app Projects point at workspace folders and keep their own team, state, history and chats; a saved "formation" can be applied to new projects together with its skills and MCP servers. A kanban board with six columns (backlog to done) is populated automatically: a prompt creates a task, delegations hang off it, approvals wait in "needs you", and finished runs move to review or ready. The same tasks render as a layered dependency graph where drag connections declare blocking relationships. Other views include a chat thread with the orchestrator (tool use, collapsible delegations, saved prompt "orders"), a hierarchy graph showing who delegates to whom and remaining quota, a right dock with raw event feeds and real PTY terminals, approvals that can be required per agent or globally, direct and shared multi-agent chats, notifications, git repo state (branch, dirty files, ahead/behind, open pull requests with CI status) and contextual right-click menus. Per-agent git worktrees with their own branch let two implementers work at once without fighting over the git index; a panel can open, merge or drop them, refusing to merge with uncommitted work. Remote and CLI A built-in server publishes the same React UI as a single self-contained page over the LAN, protected by a token in the URL (401 without it), so a phone can view the board, send tasks, stop runs and answer questions. Optional public URLs come from cloudflared or ngrok, with support for static domains. The page also offers browser notifications while it is alive in the background, which requires a secure context. An HTTP API with token auth exposes state, an SSE event stream, prompt, instruct, stop, approve and chat endpoints. The same orchestrator is available headlessly through a CLI, with commands for running tasks, managing projects, agents and formations, detecting installations, checking quota and usage, browsing history, handling approvals, chatting and serving the phone page. Extras and data Skills, MCP servers, shared context and a profile are injected into agent prompts. Hooks react to orchestrator events such as task.started, task.finished, delegation or approval.requested with Slack/Discord or generic webhooks, local commands, system notifications, or instructions chained into another agent, using templated variables. All configuration, history, chats, task boards, quota marks and logs live in plain files under the user's AppData folders; history keeps the last 300 runs and 3000 messages per project, logs rotate daily and are kept for 14 days, and tokens are masked before writing. The interface is translated into Spanish, English, Brazilian Portuguese, Simplified Chinese, Japanese, French and German, switchable without restart, with Spanish as the base dictionary. Releases are built and signed through GitHub Actions from a version bump on the main branch, and installed apps update themselves.