{"id":172,"date":"2026-09-05T17:28:13","date_gmt":"2026-09-05T20:28:13","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=172"},"modified":"2026-09-08T10:11:35","modified_gmt":"2026-09-08T13:11:35","slug":"assistentes-de-ia-no-terminal-linux","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/assistentes-de-ia-no-terminal-linux\/","title":{"rendered":"AI assistants on the Linux terminal"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro digitando no terminal com o assistente de IA respondendo em bal\u00f5es de conversa\" src=\"\/wp-content\/uploads\/2026\/09\/ia-terminal-v2.webp\" width=\"1486\" height=\"856\" \/><\/p>\n<p>The current generation of AI assistants has left the browser and entered the <strong>terminal<\/strong> \u2014 where sysadmins and developers actually work. They read files, explain errors, write scripts and execute commands with your approval. This post is the updated map for September 2026: what exists, how to install each one and what to do to avoid shooting yourself in the foot.<\/p>\n<h2>What changed since the first version of this post<\/h2>\n<p>Two things, and both matter:<\/p>\n<ul>\n<li><strong>Gemini CLI is over.<\/strong> Google shut down the command <code data-no-translation=\"\">gemini<\/code> in <strong>18 June 2026<\/strong>, with no grace period for the free tier, and consolidated everything under the brand <strong>Antigravity<\/strong>. The replacement is <code data-no-translation=\"\">agy<\/code>. If you had a CI script calling <code data-no-translation=\"\">gemini<\/code>, it stopped working that day.<\/li>\n<li><strong>The field got crowded.<\/strong> In 2025 there were two or three. Today there are at least eight relevant CLIs, and the choice has become more about <em>harness<\/em> \u2014 the program that orchestrates the agent \u2014 than the model.<\/li>\n<\/ul>\n<h2>The options in September 2026<\/h2>\n<table>\n<thead>\n<tr>\n<th>Command<\/th>\n<th>Tool<\/th>\n<th>Underlying model<\/th>\n<th>License<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code data-no-translation=\"\">claude<\/code><\/td>\n<td>Claude Code (Anthropic)<\/td>\n<td>Claude<\/td>\n<td>Proprietary, subscription or API<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">codex<\/code><\/td>\n<td>Codex CLI (OpenAI)<\/td>\n<td>GPT<\/td>\n<td>Open source, ChatGPT account or API<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">agy<\/code><\/td>\n<td>Antigravity CLI (Google)<\/td>\n<td>Gemini<\/td>\n<td>Proprietary; successor to Gemini CLI<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">opencode<\/code><\/td>\n<td>OpenCode<\/td>\n<td>Any \u2014 you choose<\/td>\n<td>Open source<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">copilot<\/code><\/td>\n<td>GitHub Copilot CLI<\/td>\n<td>Several, via GitHub<\/td>\n<td>Proprietary, subscription<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">crush<\/code><\/td>\n<td>Crush (Charm)<\/td>\n<td>Several providers<\/td>\n<td>Open source<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">grok<\/code><\/td>\n<td>Grok Build (xAI)<\/td>\n<td>Grok<\/td>\n<td>Open source, Apache-2.0<\/td>\n<\/tr>\n<tr>\n<td><code data-no-translation=\"\">ollama<\/code><\/td>\n<td>Ollama<\/td>\n<td>Local model, no cloud<\/td>\n<td>Open source<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Claude Code<\/h2>\n<p>The agent that popularized the format: navigates the project, reads and edits files, runs commands and asks for approval before acting.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">npm install -g @anthropic-ai\/claude-code\ncd ~\/meu-projeto\nclaude<\/code><\/pre>\n<p>On first run it asks you to log in. Then just chat:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-text\" data-no-translation=\"\">&gt; explique o que esse script faz e onde ele pode falhar\n\n&gt; escreva um script bash que fa\u00e7a backup do \/etc para\n  \/backup com data no nome e mantenha s\u00f3 os \u00faltimos 7<\/code><\/pre>\n<h2>Codex CLI<\/h2>\n<p>OpenAI\u2019s agent, written in Rust and open source. Authenticate with your ChatGPT account or an API key:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># instalador oficial\ncurl -fsSL https:\/\/chatgpt.com\/codex\/install.sh | sh\n\n# ou, se voc\u00ea j\u00e1 vive no npm\nnpm install -g @openai\/codex\n\ncodex<\/code><\/pre>\n<p>It also runs non-interactively, which is useful for automation:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">echo \"resuma os erros deste log e sugira a causa\" | codex exec -<\/code><\/pre>\n<h2>Antigravity CLI (the <code data-no-translation=\"\">agy<\/code>)<\/h2>\n<p>The Gemini CLI replacement. Written in Go, focused on orchestrating <em>multiple<\/em> agents in parallel, with task handoffs between them and state that survives long sessions.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">curl -fsSL https:\/\/antigravity.google\/cli\/install.sh | bash\nagy<\/code><\/pre>\n<p>Those coming from <code data-no-translation=\"\">gemini<\/code> need a real migration: it is a new installation, not an <em>alias<\/em>. The <em>skills<\/em>, <em>hooks<\/em> and subagents you had remain valid, but the binary is different.<\/p>\n<h2>OpenCode<\/h2>\n<p>The wildcard on the list, and the most interesting for anyone who does not want vendor lock-in: it is open and <strong>model-agnostic<\/strong> \u2014 point it to Anthropic, OpenAI, Google, a local provider or whatever you want.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">curl -fsSL https:\/\/opencode.ai\/install | bash\n\n# ou\nnpm install -g opencode-ai\n\nopencode<\/code><\/pre>\n<h2>GitHub Copilot CLI<\/h2>\n<p>It makes sense if your company already pays for Copilot and the code lives on GitHub \u2014 integration with issues and pull requests is the differentiator.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">npm install -g @github\/copilot\ncopilot<\/code><\/pre>\n<h2>Grok Build<\/h2>\n<p>xAI\u2019s agent, and the newest on the list \u2014 the repository <a href=\"https:\/\/github.com\/xai-org\/grok-build\" target=\"_blank\" rel=\"noopener\">xai-org\/grok-build<\/a> was opened in <strong>July 2026<\/strong> under the <strong>Apache-2.0<\/strong> license and already has over 26 thousand stars. It is written in <strong>Rust<\/strong>, which is noticeable at startup: it opens instantly.<\/p>\n<p>The difference in format from the others is that it is not a <em>prompt<\/em> scrolling in the terminal, but a <strong>full-screen TUI<\/strong> \u2014 interactive, with mouse support \u2014 that understands the project, edits files, executes shell commands, searches the web and tracks long tasks.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># macOS e Linux\ncurl -fsSL https:\/\/x.ai\/cli\/install.sh | bash\ngrok --version\n\n# rodar dentro do projeto\ncd ~\/meu-projeto\ngrok<\/code><\/pre>\n<p>Three things worth knowing before adopting it:<\/p>\n<ul>\n<li class=\"translation-block\"><strong>Headless mode.<\/strong> In addition to the TUI, it runs without an interface for scripts and CI \u2014 which lets you put it inside a <em>pipeline<\/em>.<\/li>\n<li><strong>ACP.<\/strong> It speaks the <em>Agent Client Protocol<\/em>, so you can embed the agent in the editor instead of switching windows.<\/li>\n<li><strong>Building from source is a hassle.<\/strong> It is possible, but the build requires the Rust toolchain pinned by <code data-no-translation=\"\">rust-toolchain.toml<\/code> plus <a href=\"https:\/\/dotslash-cli.com\" target=\"_blank\" rel=\"noopener\">DotSlash<\/a> in <code data-no-translation=\"\">PATH<\/code> to resolve the <code data-no-translation=\"\">protoc<\/code> hermetically. For normal use, get the published binary.<\/li>\n<\/ul>\n<p>An honest caveat about \u201copen source\u201d: the repository is the Rust source for the CLI and agent runtime, synchronized periodically from the company monorepo \u2014 it is not a community development project. The <em>model<\/em> remains a paid xAI service. You audit and modify the <em>harness<\/em>, not the brain.<\/p>\n<h2>No cloud: local model<\/h2>\n<p>For an isolated server, sensitive data or simple stubbornness, the way forward is running the model on your machine. It is slower and the results are worse than frontier models, but nothing leaves the network:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh\nollama run qwen2.5-coder:7b<\/code><\/pre>\n<p>The complete walkthrough is in <a href=\"\/en\/2026\/09\/rodando-ia-local-no-linux-com-ollama\/\">Running local AI on Linux with Ollama<\/a>. To serve multiple users simultaneously with real throughput, see <a href=\"\/en\/2026\/09\/vllm-primeiros-passos-linux\/\">vLLM<\/a>.<\/p>\n<h2>Which one to choose<\/h2>\n<ul>\n<li><strong>Not sure where to start?<\/strong> Claude Code or Codex. They have the two most mature agent workflows.<\/li>\n<li><strong>Do not want to depend on one vendor?<\/strong> OpenCode, pointing to whichever provider you want.<\/li>\n<li><strong>Want an auditable harness in Rust with a full-screen TUI?<\/strong> Grok Build \u2014 the agent code is Apache-2.0.<\/li>\n<li><strong>Company already pays for GitHub?<\/strong> Copilot CLI, for integration.<\/li>\n<li><strong>Data that cannot leave the machine?<\/strong> Ollama, and accept weaker results.<\/li>\n<li><strong>Want them all installed without effort?<\/strong> The distro <a href=\"\/en\/2026\/09\/omarchy-linux-dhh-arch-hyprland\/\">Omarchy<\/a> already comes with all these CLIs prewired as stubs \u2014 nothing is downloaded until first use.<\/li>\n<\/ul>\n<h2>What these tools are actually good for<\/h2>\n<ul>\n<li><strong>Explain the error in front of you<\/strong>: paste the <em>stacktrace<\/em> and ask for a diagnosis.<\/li>\n<li><strong>Generate boilerplate<\/strong>: systemd unit, Ansible playbook, nginx config, Dockerfile.<\/li>\n<li><strong>Read logs<\/strong>: \u201csummarize the errors in this <code data-no-translation=\"\">journalctl<\/code> and group by service\u201d.<\/li>\n<li><strong>Navigate someone else\u2019s code<\/strong>: \u201cwhere does this project validate the token?\u201d solves in seconds what would take an afternoon of <code data-no-translation=\"\">grep<\/code>.<\/li>\n<li><strong>Learn<\/strong>: \u201cwhy does this <code data-no-translation=\"\">find<\/code> use <code data-no-translation=\"\">-print0<\/code> and <code data-no-translation=\"\">xargs -0<\/code>?&#8221;<\/li>\n<\/ul>\n<p>And where they are bad: architecture decisions, anything depending on context you did not provide, and destructive commands. The model\u2019s confidence has no relation to correctness.<\/p>\n<h2>Sysadmin precautions<\/h2>\n<p>AI makes mistakes confidently. Survival rules, in order of importance:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-text\" data-no-translation=\"\">1. Leia TODO comando antes de aprovar a execu\u00e7\u00e3o.\n2. Nunca rode sugest\u00e3o de IA como root em produ\u00e7\u00e3o sem testar antes.\n3. Senha, chave privada e token n\u00e3o entram no prompt \u2014 nem \"s\u00f3 para\n   o agente ver\". O que entra no contexto sai da sua m\u00e1quina.\n4. Trabalhe em reposit\u00f3rio com git limpo: o desfazer \u00e9 o `git diff`.\n5. Desconfie do modo autom\u00e1tico. \"N\u00e3o pergunte, fa\u00e7a\" economiza\n   cliques at\u00e9 o dia em que economiza o seu \/etc.\n6. Em servidor isolado ou com dado regulado, prefira modelo local.<\/code><\/pre>\n<p>Item 5 deserves a paragraph. All these agents have an automatic approval mode, and enabling it is tempting. It is acceptable in a disposable container or a version-controlled repository you can revert. On a production server with root access, it is not.<\/p>\n<h2>What comes next: MCP and skills<\/h2>\n<p>Recent evolution is not in the model, but in what the agent can <em>reach<\/em>. Two mechanisms standardized this:<\/p>\n<ul>\n<li><strong>MCP (Model Context Protocol)<\/strong> \u2014 an open protocol for the agent to talk to external tools: your database, your WordPress, your internal API, Kubernetes. Instead of pasting command output into the prompt, the agent queries the source.<\/li>\n<li><strong>Skills<\/strong> \u2014 packaged instructions that teach the agent to perform a task your way, loaded only when needed.<\/li>\n<\/ul>\n<p>We covered the subject in <a href=\"\/en\/2026\/09\/vibe-coding-linux-skills-ia-cli\/\">Vibe coding on Linux: four AI skills in the CLI<\/a>.<\/p>\n<h2>Closing<\/h2>\n<p>The real gain is not \u201cAI does it for me\u201d \u2014 it is having a technical partner available 24 hours inside the terminal, who has already read all the documentation and never tires of explaining. Those who learn to use it well, with review and without outsourcing judgment, visibly produce more. Those who approve commands without reading sooner or later restore a backup.<\/p>","protected":false},"excerpt":{"rendered":"<p>The current generation of AI assistants has moved out of the browser and into the terminal \u2014 where sysadmins and developers actually work. They read files, explain errors, write scripts, and execute commands with your approval. This post is the updated September 2026 guide: what exists, how to install each one, and \u2026 <a title=\"AI assistants on the Linux terminal\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/assistentes-de-ia-no-terminal-linux\/\" aria-label=\"Read more about Assistentes de IA no terminal Linux\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28,115,2],"tags":[394,118,392,116,393,119,117],"class_list":["post-172","post","type-post","status-publish","format-standard","hentry","category-dicas","category-ia","category-linux","tag-agentes","tag-claude","tag-codex","tag-ia","tag-opencode","tag-produtividade","tag-terminal"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":5,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":1326,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/172\/revisions\/1326"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}