<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Orquesta𝄢</title>
    <description>The latest articles on DEV Community by Orquesta𝄢 (@orquesta_live).</description>
    <link>https://dev.to/orquesta_live</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802218%2Fb9eff438-b0a5-4123-8e52-f8d46e07591d.png</url>
      <title>DEV Community: Orquesta𝄢</title>
      <link>https://dev.to/orquesta_live</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/orquesta_live"/>
    <language>en</language>
    <item>
      <title>CLAUDE.md Sync: Standardizing AI Agent Coding Standards</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Thu, 15 Oct 2026 12:01:48 +0000</pubDate>
      <link>https://dev.to/orquesta_live/claudemd-sync-standardizing-ai-agent-coding-standards-1bfc</link>
      <guid>https://dev.to/orquesta_live/claudemd-sync-standardizing-ai-agent-coding-standards-1bfc</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/claude-md-sync-standardizing-ai-agent-coding-standards" rel="noopener noreferrer"&gt;getorquesta.com/blog/claude-md-sync-standardizing-ai-agent-coding-standards&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I remember the first time a team told me their AI agents were producing code that looked like it came from five different developers. It did—because it had. Each engineer had their own local CLAUDE.md file, if they had one at all. Some were outdated, some were overly permissive, and most were missing entirely. The result was a mess: PRs with inconsistent formatting, missing tests, and architecture decisions that contradicted each other.&lt;/p&gt;

&lt;p&gt;We built Orquesta to solve this exact problem. The platform runs AI agents locally on your machine, streams output in real-time, and turns every action into a real git commit. But the key to making those agents work consistently across a team isn't just the agent runtime—it's how you configure them. And for Claude Code, the configuration that matters most is CLAUDE.md.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Agents That Drift
&lt;/h2&gt;

&lt;p&gt;Claude Code reads a file called CLAUDE.md from the root of your project. It's like a README for the AI: it contains instructions, preferences, and rules that Claude should follow while working in that repository. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project Instructions&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use TypeScript strict mode in all new files.
&lt;span class="p"&gt;-&lt;/span&gt; Prefer functional components over class components in React.
&lt;span class="p"&gt;-&lt;/span&gt; Write unit tests for every new utility function.
&lt;span class="p"&gt;-&lt;/span&gt; Follow the conventional commits specification (feat:, fix:, chore:).
&lt;span class="p"&gt;-&lt;/span&gt; Do not introduce new dependencies without approval.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's powerful, but it only works if every engineer on the team has the same CLAUDE.md. In practice, that rarely happens. Developers copy files from old projects, forget to update them, or don't create one at all. The AI agent then defaults to generic behavior, which may not match team expectations. The result is code that passes syntax checks but fails architectural review, or commits that break the team's commit message format.&lt;/p&gt;

&lt;p&gt;Even worse, when a new developer joins, they have to manually configure their local environment to match the team's standards. That's time wasted and a source of frustration. And if a team lead updates a standard, everyone has to update their local files manually. It's the same problem we solved years ago with linters and formatters, but for AI agent instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  What CLAUDE.md Actually Is
&lt;/h2&gt;

&lt;p&gt;Before we get to the solution, let's be precise. CLAUDE.md is not a magic file; it's a plain Markdown file that Claude Code automatically reads and treats as system-level instructions for the project. It can include anything: coding conventions, architectural notes, testing requirements, deployment constraints, or even team-specific preferences like "always use async/await instead of promises."&lt;/p&gt;

&lt;p&gt;The file sits in your repository root, so it's version-controlled. But that's also part of the problem: multiple teams might work in the same repo, each wanting different instructions. Or you might have multiple repositories with different needs. A single CLAUDE.md per repo isn't flexible enough for larger organizations.&lt;/p&gt;

&lt;p&gt;That's why we decided to make CLAUDE.md sync a first-class feature in Orquesta.&lt;/p&gt;

&lt;h2&gt;
  
  
  Centralizing Standards with Orquesta
&lt;/h2&gt;

&lt;p&gt;Orquesta provides a dashboard where you can write and manage CLAUDE.md files for your entire team. Instead of each developer maintaining their own local copy, you define the rules once in the dashboard, and Orquesta ensures that every agent execution on any machine uses the exact same version.&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A team lead (or someone with the right permissions) writes a CLAUDE.md file in the Orquesta dashboard. They can use the built-in editor with Markdown support, or copy-paste from an existing repo.&lt;/li&gt;
&lt;li&gt;Orquesta stores this file securely, versioned, with a full history of changes. You can see who changed what and when.&lt;/li&gt;
&lt;li&gt;When any team member launches an agent in Orquesta—whether through the web interface, the CLI, or the Telegram bot—the platform automatically fetches the latest CLAUDE.md and writes it into the agent's working directory before Claude Code starts.&lt;/li&gt;
&lt;li&gt;The agent then uses that file as its instruction set. Every prompt, every code generation, every refactor respects the rules defined in the dashboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This means that if you update a rule in the dashboard, every subsequent agent execution across your entire team uses the new rule immediately. No manual distribution, no stale local files, no drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Implementation: How Sync Works
&lt;/h2&gt;

&lt;p&gt;Under the hood, we added a step in the agent bootstrap process. When an agent is about to start, Orquesta checks the dashboard for the latest CLAUDE.md version. If the local file doesn't exist or is different, we fetch the new content and write it to the agent's temporary working directory (not the user's repo, but the isolated environment where the agent runs). We also validate that the file is valid Markdown and doesn't contain any disallowed characters.&lt;/p&gt;

&lt;p&gt;The sync happens over an encrypted connection, and we cache the file locally to avoid repeated network calls. We also include the version hash in the agent's audit log, so you can trace exactly which CLAUDE.md version was active during any execution. That's critical for debugging and for post-mortems.&lt;/p&gt;

&lt;p&gt;For teams that already have a CLAUDE.md in their repository, we offer two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Override mode&lt;/strong&gt;: The dashboard version always wins. Useful for enforcing company-wide standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge mode&lt;/strong&gt;: We combine the dashboard rules with the repo's local CLAUDE.md, with the dashboard rules taking precedence on conflicts. This is best for teams that want to keep repo-specific instructions while still enforcing global standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also support multiple CLAUDE.md files for different projects or environments, so you can have a base set of rules for all agents and then layer project-specific instructions on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Concrete Example: Enforcing Commit Conventions
&lt;/h2&gt;

&lt;p&gt;Let's walk through a real scenario. Suppose your team follows strict commit message conventions—every commit must start with a type (feat, fix, chore, etc.) and a scope. You might have a rule in CLAUDE.md like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Commit messages must follow the conventional commits format:
&lt;span class="p"&gt;-&lt;/span&gt; Type: feat, fix, chore, docs, style, refactor, test, perf
&lt;span class="p"&gt;-&lt;/span&gt; Optional scope in parentheses: e.g., feat(auth): add login endpoint
&lt;span class="p"&gt;-&lt;/span&gt; Subject: imperative, lowercase, no period at the end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Orquesta's sync, you write that once in the dashboard. Now every AI agent that generates a commit—whether it's fixing a bug, adding a feature, or refactoring code—will automatically format its commit message according to that rule. You don't have to remind the agent in every prompt; the instruction is always present.&lt;/p&gt;

&lt;p&gt;The same applies to coding style. If your team prefers function declarations over arrow functions at the top level, or tabs over spaces, or a particular import order, you encode it in CLAUDE.md and it's enforced consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling Conflicts and Versioning
&lt;/h2&gt;

&lt;p&gt;One of the trickiest parts of this feature is dealing with conflicts. What if a developer has a local CLAUDE.md that contradicts the dashboard? We decided to make the dashboard the source of truth. Local overrides are possible only if the team lead explicitly allows them in the project settings. That prevents rogue agents from ignoring team standards.&lt;/p&gt;

&lt;p&gt;We also needed strong versioning. Every edit to CLAUDE.md in the dashboard creates a new version with an author and timestamp. You can roll back to a previous version if a rule was accidentally broken. And because we log the version in every agent execution, you can see exactly which rules were in effect for any generated code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why CLAUDE.md Sync Matters for Scaling AI
&lt;/h2&gt;

&lt;p&gt;As AI agents become part of the daily workflow, consistency becomes non-negotiable. Without a centralized way to manage agent instructions, you'll end up with a chaotic mess: some agents following old rules, others following none, and reviewers spending hours pointing out violations that should have been caught automatically.&lt;/p&gt;

&lt;p&gt;CLAUDE.md sync turns those instructions from a personal preference into a team policy. It's the same shift we saw with linters and CI checks—once you enforce standards automatically, code quality improves across the board, and developers can focus on the hard problems instead of nitpicking style.&lt;/p&gt;

&lt;p&gt;For us at Orquesta, building this feature was a no-brainer. Our platform already runs agents locally with full transparency, but transparency alone isn't enough. You need control, and control starts with consistent instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;If you're using Claude Code with a team, you need CLAUDE.md sync. Writing rules once and having them enforced on every agent execution is the only way to scale AI-assisted development without sacrificing quality. Orquesta provides that capability out of the box, along with the audit trail and versioning you need to trust the system.&lt;/p&gt;

&lt;p&gt;We built this because we experienced the pain firsthand. Now we're giving it to every team—because the future of software development is humans and AI working together, but only if the AI follows the same rules.&lt;/p&gt;

</description>
      <category>claudemd</category>
      <category>aiagents</category>
      <category>codingstandards</category>
      <category>orquesta</category>
    </item>
    <item>
      <title>Orquesta CLI: Local LLM Management with Dashboard Sync</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Tue, 13 Oct 2026 12:01:50 +0000</pubDate>
      <link>https://dev.to/orquesta_live/orquesta-cli-local-llm-management-with-dashboard-sync-26kd</link>
      <guid>https://dev.to/orquesta_live/orquesta-cli-local-llm-management-with-dashboard-sync-26kd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/orquesta-cli-local-llm-management-with-dashboard-sync" rel="noopener noreferrer"&gt;getorquesta.com/blog/orquesta-cli-local-llm-management-with-dashboard-sync&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Another CLI for LLMs?
&lt;/h2&gt;

&lt;p&gt;Managing LLMs across a team is a mess. Developers want to run models locally for privacy and cost, but collaboration requires shared configuration and visibility. We built Orquesta CLI to bridge that gap: a command-line tool that lets you run any LLM provider locally—Claude, OpenAI, Ollama, vLLM—while syncing every configuration to the Orquesta cloud dashboard. The sync is bidirectional, prompt history is tracked, and tokens are scoped to your organization.&lt;/p&gt;

&lt;p&gt;Before Orquesta, our team juggled multiple environment variables, shell scripts, and manual config files. Switching between providers meant editing code or restarting processes. Sharing prompts and model settings happened over Slack or Git. It was fragile.&lt;/p&gt;

&lt;p&gt;Orquesta CLI replaces all that with a single binary that understands your local models, manages provider credentials, and keeps the dashboard updated in real time. The agent still runs on your machine—code never leaves your infrastructure—but the control plane lives in the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing and Authenticating
&lt;/h2&gt;

&lt;p&gt;Install the CLI with a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://get.orquesta.dev | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or via npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @orquesta/cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once installed, authenticate and initialize a project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta auth login
orquesta init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;auth login&lt;/code&gt; command opens a browser for OAuth, creating a local config file at &lt;code&gt;~/.orquesta/config.yaml&lt;/code&gt;. The &lt;code&gt;init&lt;/code&gt; command scaffolds a project directory with a &lt;code&gt;.orquesta/&lt;/code&gt; folder containing provider configurations and a connection to your organization's workspace.&lt;/p&gt;

&lt;p&gt;The config file uses a simple YAML structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;org&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;acme-corp&lt;/span&gt;
&lt;span class="na"&gt;default_provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ollama&lt;/span&gt;
&lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;claude&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${CLAUDE_API_KEY}&lt;/span&gt;
  &lt;span class="na"&gt;openai&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${OPENAI_API_KEY}&lt;/span&gt;
  &lt;span class="na"&gt;ollama&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;http://localhost:11434&lt;/span&gt;
  &lt;span class="na"&gt;vllm&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;base_url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;http://localhost:8000&lt;/span&gt;
&lt;span class="na"&gt;sync&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;bidirectional&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;interval&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10s&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI reads environment variables for sensitive keys, so you never store secrets in plain text. On first run, it generates a machine-specific key pair and registers your device with the dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported Providers
&lt;/h2&gt;

&lt;p&gt;Orquesta CLI supports four provider types out of the box, each with its own advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude&lt;/strong&gt;: Anthropic's API via the &lt;code&gt;claude&lt;/code&gt; CLI. Requires an API key. Ideal for code generation and reasoning tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAI&lt;/strong&gt;: OpenAI's API, including GPT-4 and future models. Also requires an API key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt;: Local model runner that supports Llama, Mistral, and many others. No API key needed; runs entirely on your machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;vLLM&lt;/strong&gt;: High-throughput serving engine for production LLM inference. Usually deployed on a GPU server or cluster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can configure multiple providers simultaneously and switch between them per prompt or per project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing Local Models with Ollama
&lt;/h2&gt;

&lt;p&gt;Ollama is the easiest way to run models locally. Install it separately, then pull a model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull llama3:8b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Orquesta CLI detects the Ollama service and lists available models:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta models list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Provider: ollama
  llama3:8b
  mistral:7b
  codellama:13b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To set the default model for a project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta config &lt;span class="nb"&gt;set &lt;/span&gt;provider.ollama.model llama3:8b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI automatically updates the local config and pushes the change to the dashboard. If you have bidirectional sync enabled, any change you make in the dashboard (e.g., switching the team's default model) will be pulled down to your machine within seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced: vLLM for High-Throughput Inference
&lt;/h2&gt;

&lt;p&gt;For teams that need production-scale serving, vLLM integrates seamlessly. Start a vLLM server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve meta-llama/Meta-Llama-3-8B &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then add it to Orquesta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta provider add vllm &lt;span class="nt"&gt;--base-url&lt;/span&gt; http://localhost:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI will query the vLLM server for available models and register them in the dashboard. You can now submit prompts that route to vLLM, either from the CLI or from the Orquesta web interface. Because vLLM uses continuous batching, throughput is much higher than individual Ollama requests, making it suitable for shared team use.&lt;/p&gt;

&lt;p&gt;You can mix providers within a single project. For example, use Ollama for quick local iterations and switch to vLLM when you need to serve multiple teammates concurrently. The CLI handles routing automatically based on the provider you select for each prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bidirectional Config Sync
&lt;/h2&gt;

&lt;p&gt;The sync engine is the core of Orquesta CLI. Every configuration change—whether from the CLI, the dashboard, or a teammate's action—is propagated to all connected machines. The sync uses a WebSocket connection to the Orquesta cloud, with a local fallback that polls every few seconds if the WebSocket drops.&lt;/p&gt;

&lt;p&gt;Changes are versioned and conflict-resolved using a last-write-wins strategy, with a clear audit trail in the dashboard. For example, if a teammate updates the OpenAI API key in the dashboard, it's encrypted and synced to your machine, replacing the old environment variable reference in your local config. Conversely, if you add a new Ollama model locally, that model becomes available to your whole team in the dashboard.&lt;/p&gt;

&lt;p&gt;The sync is bidirectional by default, but you can disable it per project if you prefer manual control:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta config &lt;span class="nb"&gt;set &lt;/span&gt;sync.bidirectional &lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In that mode, you can still manually push and pull:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta &lt;span class="nb"&gt;sync &lt;/span&gt;push
orquesta &lt;span class="nb"&gt;sync &lt;/span&gt;pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Prompt History Tracking
&lt;/h2&gt;

&lt;p&gt;Every prompt you submit through Orquesta—whether via the CLI, the dashboard, the Telegram bot, or the embedded SDK—is logged with full context. The CLI records the provider, model, parameters, and the full response. This history is uploaded to the dashboard and associated with your user and organization.&lt;/p&gt;

&lt;p&gt;To view recent prompts from the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta &lt;span class="nb"&gt;history&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[2024-06-12 14:23:01] user: Generate a Rust function to parse JSON
[2024-06-12 14:23:18] agent: (claude-3-opus) Here's the code...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dashboard provides a richer view with filters by provider, model, date, and user. You can also see the cost breakdown if using paid APIs. For local models, cost is zero but still tracked for analytics.&lt;/p&gt;

&lt;p&gt;This prompt history is crucial for collaboration: teammates can see what prompts were tried, which models performed well, and reuse successful prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Org-Scoped Tokens
&lt;/h2&gt;

&lt;p&gt;Security is a priority. Orquesta CLI uses AES-256 encryption for all data in transit and at rest. API keys are never sent to the dashboard in plaintext; they are encrypted with a key derived from your organization's master key. You can generate scoped tokens for CI/CD or service accounts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta token create &lt;span class="nt"&gt;--scope&lt;/span&gt; read-only &lt;span class="nt"&gt;--expires&lt;/span&gt; 30d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This produces a token that can be used in headless environments, e.g., in a GitHub Action:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Orquesta sync&lt;/span&gt;
  &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ORQUESTA_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.ORQUESTA_TOKEN }}&lt;/span&gt;
  &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
    &lt;span class="s"&gt;orquesta auth token&lt;/span&gt;
    &lt;span class="s"&gt;orquesta sync pull&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The token grants access only to the specified organization and cannot be used to modify sensitive settings unless granted write scope. All token usage is logged in the audit trail.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Real Workflow: From Local Model to Team Collaboration
&lt;/h2&gt;

&lt;p&gt;Let's walk through a typical scenario. I'm working on a feature and want to use a local Llama 3 model via Ollama to avoid API costs. I configure Orquesta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta provider add ollama &lt;span class="nt"&gt;--base-url&lt;/span&gt; http://localhost:11434
orquesta config &lt;span class="nb"&gt;set &lt;/span&gt;provider.ollama.model llama3:8b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This change syncs to the dashboard. My teammate sees that I'm using Llama 3 and decides to try the same model. They run &lt;code&gt;orquesta sync pull&lt;/code&gt; and get the config automatically. Now both of us are using the same local model.&lt;/p&gt;

&lt;p&gt;I submit a prompt from the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta prompt &lt;span class="s1"&gt;'Refactor this Python function to use async/await'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prompt is sent to the local Ollama, and the response streams in the terminal. The entire interaction is recorded in the prompt history. My teammate can see my prompt in the dashboard, copy it, and adapt it for their own work.&lt;/p&gt;

&lt;p&gt;Later, I want to switch to Claude for a more complex task. I simply change the default provider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta config &lt;span class="nb"&gt;set &lt;/span&gt;default_provider claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI automatically loads the Claude API key from the environment and syncs the change. No code changes needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Orquesta CLI is not just another wrapper; it's a local-first LLM management tool that respects your infrastructure while enabling team collaboration. By supporting multiple providers, bidirectional sync, prompt history tracking, and org-scoped tokens, it solves the practical problems of running LLMs in a team setting. Whether you're a solo developer or part of a large organization, the CLI gives you control and visibility without sacrificing privacy.&lt;/p&gt;

&lt;p&gt;The takeaway: you can run any model locally, keep your data secure, and still collaborate seamlessly with your team through the dashboard. Orquesta CLI makes that possible.&lt;/p&gt;

</description>
      <category>orquestacli</category>
      <category>localllm</category>
      <category>dashboardsync</category>
      <category>ollama</category>
    </item>
    <item>
      <title>Inside Batuta AI: Autonomous Server Debugging with ReAct Loop</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Sun, 11 Oct 2026 12:00:44 +0000</pubDate>
      <link>https://dev.to/orquesta_live/inside-batuta-ai-autonomous-server-debugging-with-react-loop-4j78</link>
      <guid>https://dev.to/orquesta_live/inside-batuta-ai-autonomous-server-debugging-with-react-loop-4j78</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/batuta-ai-autonomous-server-debugging" rel="noopener noreferrer"&gt;getorquesta.com/blog/batuta-ai-autonomous-server-debugging&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem with Manual Debugging
&lt;/h2&gt;

&lt;p&gt;Every engineer knows the drill: an alert fires, you SSH into a VM, tail logs, run a few commands, stare at stack traces, and eventually find the culprit. Then you fix it, restart the service, and verify. It’s tedious, especially when you’re juggling multiple incidents or it’s 3 AM.&lt;/p&gt;

&lt;p&gt;We built Batuta AI to handle this entire loop without human intervention. It’s not a fancy autocomplete or a chatbot—it’s an autonomous agent that connects to your cloud VMs over SSH, reasons about the problem, executes commands, observes results, and iterates until the issue is resolved. Under the hood, it uses a &lt;strong&gt;ReAct loop&lt;/strong&gt; (Think, Act, Observe, Repeat), which we’ve tuned specifically for infrastructure debugging.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ReAct Loop in Practice
&lt;/h2&gt;

&lt;p&gt;ReAct (Reasoning + Acting) is a prompt engineering pattern where the model first "thinks" about what to do next, then executes an action, observes the output, and uses that observation to decide the next step. Batuta’s implementation is a tight cycle:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt; – The LLM examines the current state (logs, metrics, previous command outputs) and formulates a hypothesis or a specific diagnostic command.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act&lt;/strong&gt; – It runs that command on the target server via SSH and captures stdout/stderr, exit code, and timing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observe&lt;/strong&gt; – The output is fed back into the context, along with any new information (file contents, process states).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat&lt;/strong&gt; – The model either confirms the hypothesis and takes a corrective action, or tries another diagnostic path.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unlike a simple script that runs a fixed sequence of commands, Batuta can adapt. If a command fails or returns unexpected output, it pivots. If it needs to inspect a file, it reads it. If it needs to restart a service, it does so and then checks health endpoints. This flexibility is what makes autonomous debugging possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Batuta Connects to Your Cloud VMs
&lt;/h2&gt;

&lt;p&gt;Batuta runs on your own machine (or any host you designate) and uses SSH to connect to target servers. You provide SSH credentials or keys via Orquesta’s secure vault—they never leave your infrastructure. The agent does not operate in a cloud sandbox; everything happens locally, with full control over which servers it can access.&lt;/p&gt;

&lt;p&gt;A typical Batuta task begins with a natural language prompt, like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Batuta, debug why the API service on server api-prod-01 is returning 500 errors on the /users endpoint.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resolves the server name (from your inventory or cloud provider tags).&lt;/li&gt;
&lt;li&gt;Establishes an SSH connection using the stored key.&lt;/li&gt;
&lt;li&gt;Starts a ReAct loop: it might first check &lt;code&gt;systemctl status api&lt;/code&gt;, then tail logs, grep for recent errors, inspect configuration, and so on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All commands are streamed back to Orquesta’s live terminal, so you can watch the reasoning unfold in real time. If you don’t like a step, you can interrupt and redirect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Example: Debugging a Node.js Crash
&lt;/h2&gt;

&lt;p&gt;Let’s walk through a real incident we reproduced internally. A Node.js service kept crashing with &lt;code&gt;ECONNRESET&lt;/code&gt; after a deploy. Here’s the condensed ReAct trace:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: The service is failing on outbound HTTP calls. Check recent logs for the stack trace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;journalctl -u api -n 200 --no-pager&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: Logs show &lt;code&gt;Error: connect ECONNRESET 10.0.1.15:5432&lt;/code&gt; — a database connection issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: The database might be unreachable or overloaded. Test connectivity from the server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;nc -zv 10.0.1.15 5432&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: Connection refused. The database server isn’t listening on that port.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: Check if the database process is running on that host.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;ssh db-prod-01 'systemctl status postgresql'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: &lt;code&gt;postgresql.service&lt;/code&gt; is active but listening only on localhost. The recent deploy may have overwritten &lt;code&gt;postgresql.conf&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: Inspect the configuration file for &lt;code&gt;listen_addresses&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;ssh db-prod-01 'grep listen_addresses /etc/postgresql/14/main/postgresql.conf'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: &lt;code&gt;listen_addresses = 'localhost'&lt;/code&gt; — it should be &lt;code&gt;*&lt;/code&gt; or the private IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: Fix the configuration and restart PostgreSQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;ssh db-prod-01 'sed -i "s/listen_addresses = .*/listen_addresses = \'*\'/" /etc/postgresql/14/main/postgresql.conf &amp;amp;&amp;amp; systemctl restart postgresql'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: Restart successful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: Verify the API service can now reach the database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;nc -zv 10.0.1.15 5432&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: Connection succeeded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think&lt;/strong&gt;: Restart the API service and test the /users endpoint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;systemctl restart api &amp;amp;&amp;amp; curl -I http://localhost:3000/users&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observe&lt;/strong&gt;: HTTP 200. Problem resolved.&lt;/p&gt;

&lt;p&gt;Batuta then creates a git commit with the configuration change (if the server is managed via configuration files) and posts a summary to the Orquesta dashboard, including the root cause and the exact commands executed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Example: Resolving a Disk Full Incident
&lt;/h2&gt;

&lt;p&gt;Another classic: a server’s disk fills up, causing writes to fail. Batuta was prompted:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Disk usage is at 98% on worker-02. Find large files and clean up safely.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here’s the condensed flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Check overall disk usage. &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;df -h /&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: &lt;code&gt;/var&lt;/code&gt; is 96% full.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Drill into &lt;code&gt;/var&lt;/code&gt; to find the largest directories. &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;du -sh /var/* | sort -rh | head&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: &lt;code&gt;/var/log&lt;/code&gt; is 45G, especially &lt;code&gt;/var/log/nginx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Check for rotated logs older than 7 days. &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;find /var/log/nginx -name "*.gz" -mtime +7 -ls&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: Many old access logs gzipped, totaling 30G.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Remove logs older than 7 days, but be careful not to delete current logs. &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;find /var/log/nginx -name "*.gz" -mtime +7 -delete&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: 30G freed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Verify disk usage now. &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;df -h /&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: &lt;code&gt;/var&lt;/code&gt; down to 55%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: Check if any service depends on those old logs (e.g., log shipping). &lt;strong&gt;Act&lt;/strong&gt;: &lt;code&gt;systemctl status filebeat&lt;/code&gt; → &lt;strong&gt;Observe&lt;/strong&gt;: Filebeat is running but logs a warning about missing old logs. It will continue with new logs only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think&lt;/strong&gt;: No further action needed; report summary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Batuta handled the whole cleanup without human intervention, including the safety check on log shippers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-Step Reasoning and Edge Cases
&lt;/h2&gt;

&lt;p&gt;Batuta’s ReAct loop excels at multi-step debugging because it maintains a working memory of the investigation. It can chain together commands, conditionally branch, and even ask for clarification if the prompt is ambiguous. For example, if you say "fix the high CPU on prod", Batuta might first identify the process, then check if it’s a known issue, then apply a patch or roll back a recent deploy—all while keeping you informed.&lt;/p&gt;

&lt;p&gt;We’ve also built in safeguards: Batuta will not execute destructive commands (&lt;code&gt;rm -rf&lt;/code&gt;, &lt;code&gt;DROP TABLE&lt;/code&gt;, etc.) without explicit confirmation. You can configure a deny list of commands, and every action is logged with a full audit trail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration with Orquesta
&lt;/h2&gt;

&lt;p&gt;Batuta is one of four execution modes in Orquesta. When you submit a prompt through the web dashboard, CLI, or Telegram bot, you can choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auto&lt;/strong&gt; – AI picks the best mode (usually Batuta for server tasks).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH&lt;/strong&gt; – Direct one-off command execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent&lt;/strong&gt; – Run Claude CLI for code generation and PRs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Batuta&lt;/strong&gt; – The autonomous SSH agent described here.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All modes stream output into the Agent Grid, where you can monitor dozens of agents in parallel. Quality gates can be applied: before Batuta makes a change, an AI simulation shows the expected diff, and a team lead can approve or reject. Your &lt;code&gt;CLAUDE.md&lt;/code&gt; coding standards are automatically synced to every agent run, ensuring consistent practices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security and Audit
&lt;/h2&gt;

&lt;p&gt;Since Batuta operates over SSH, security is paramount. SSH keys are encrypted with AES-256 and stored locally; they never leave your machine. Batuta uses the same SSH config as your local environment, so it respects your &lt;code&gt;~/.ssh/config&lt;/code&gt; and known hosts. Every action—prompt, command, output, diff, cost—is recorded in the audit trail, making it easy to review what the agent did and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;Batuta AI turns the tedious cycle of SSH debugging into a well-reasoned, autonomous process. By combining the ReAct loop with direct SSH execution, it can handle multi-step incidents—from diagnosing a crashed service to cleaning up disk space—without human hand-holding. We built it to give engineers back their time and reduce mean time to resolution. It’s not magic; it’s a disciplined loop of thinking, acting, and observing, applied relentlessly until the job is done.&lt;/p&gt;

</description>
      <category>batutaai</category>
      <category>autonomousdebugging</category>
      <category>reactloop</category>
      <category>ssh</category>
    </item>
    <item>
      <title>Local Execution: Keeping Code and Credentials on Your Machine</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Fri, 09 Oct 2026 12:01:39 +0000</pubDate>
      <link>https://dev.to/orquesta_live/local-execution-keeping-code-and-credentials-on-your-machine-36ni</link>
      <guid>https://dev.to/orquesta_live/local-execution-keeping-code-and-credentials-on-your-machine-36ni</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/local-execution-keeping-code-and-credentials-on-your-machine" rel="noopener noreferrer"&gt;getorquesta.com/blog/local-execution-keeping-code-and-credentials-on-your-machine&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The problem with cloud sandboxes
&lt;/h2&gt;

&lt;p&gt;Most AI coding platforms run agents in managed cloud environments. That means your source code, environment variables, and credentials are copied to a third-party server, processed, and then the results are shipped back. Even if the vendor promises isolation, the reality is that the code left your machine. That's a trust boundary I never wanted to cross.&lt;/p&gt;

&lt;p&gt;When we built Orquesta, we made a deliberate decision: the agent runs locally. No cloud sandbox, no remote execution for code generation. The Claude CLI executes on your own machine. It's the same terminal you use every day, with the same SSH keys, .env files, and private repos already configured. We don't need to see your code to help you write it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local execution as an architecture, not a feature
&lt;/h2&gt;

&lt;p&gt;Running the agent locally changes the security model fundamentally. Instead of uploading your codebase to a remote environment that could be compromised or subpoenaed, the code never moves. The agent reads files from disk, applies diffs, and commits — all through git on your machine. There is no network hop for source code.&lt;/p&gt;

&lt;p&gt;This isn't just about privacy; it's about compliance. If you work in fintech, healthcare, or any regulated industry, sending proprietary code to a third-party sandbox can be a compliance nightmare. With local execution, your existing security controls — VPN, disk encryption, endpoint detection — apply to the entire agent workflow. You don't need to audit a new cloud perimeter because there isn't one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Credentials stay encrypted, not just secret
&lt;/h2&gt;

&lt;p&gt;Even with local execution, the agent needs to interact with services: GitHub, Jira, Slack, your LLM provider. Many tools store these API keys in plaintext config files or environment variables that get logged accidentally. We chose AES-256 encryption for all credentials stored in Orquesta.&lt;/p&gt;

&lt;p&gt;The CLI encrypts secrets before they are written to disk. When the agent needs a token, it decrypts in memory, uses it, and never logs the plaintext. Even if someone exfiltrates your Orquesta config file, they get ciphertext without the key. The key itself is derived from your local machine's secure enclave or a passphrase you control — it never leaves your device.&lt;/p&gt;

&lt;p&gt;Here's what that looks like in practice: when you run &lt;code&gt;orquesta login&lt;/code&gt;, the CLI generates a local key pair and stores the private key in your OS keychain (macOS Keychain, Windows Credential Manager, or libsecret on Linux). The public key is sent to our server, and all secrets you add via &lt;code&gt;orquesta secrets set&lt;/code&gt; are encrypted with that public key before they leave your machine. Our server can store the ciphertext but cannot decrypt it. Only your local agent can.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example: adding a GitHub token encrypted locally&lt;/span&gt;
orquesta secrets &lt;span class="nb"&gt;set &lt;/span&gt;GITHUB_TOKEN &lt;span class="nt"&gt;--value&lt;/span&gt; ghp_...
&lt;span class="c"&gt;# The CLI encrypts with your local public key, then sends ciphertext to Orquesta cloud&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Full audit trail: every prompt, every diff, every cost
&lt;/h2&gt;

&lt;p&gt;Security isn't just about encryption; it's about accountability. When an AI agent modifies your codebase, you need to know exactly what changed, who approved it, and why. Orquesta logs every action the agent takes. That includes the original prompt, the full terminal output, every git diff, and the token cost for each LLM call.&lt;/p&gt;

&lt;p&gt;These logs are stored with AES-256 encryption at rest and in transit. They are append-only — no one can modify history. For teams, this is invaluable. If a bug is introduced by an agent, you can trace it back to the exact prompt and the exact commit. You can see whether a human reviewed the diff before it was merged, or if the agent ran in Auto mode.&lt;/p&gt;

&lt;p&gt;The audit trail also captures metadata: which agent executed the prompt, which execution mode was used, which branch was affected, and how long the run took. This isn't just nice-to-have; it's a requirement for SOC 2 and similar frameworks. We built it in from day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality gates: human sign-off before real execution
&lt;/h2&gt;

&lt;p&gt;One of the biggest risks with autonomous agents is that they make changes you didn't expect. Orquesta's quality gates address this by simulating changes before they hit your real codebase. When a prompt is submitted, the agent can first generate a plan or a simulated diff. Then a designated team lead reviews it and either approves, rejects, or requests changes.&lt;/p&gt;

&lt;p&gt;Only after approval does the agent execute the change for real. This happens in the same local environment, but the human decision is recorded in the audit trail. The result is a workflow that mirrors code review but for AI-generated changes. You get the speed of automation with the control of a traditional PR review.&lt;/p&gt;

&lt;p&gt;For example, a junior developer might submit: "Refactor the authentication module to use async/await." The agent runs in Agent mode, produces a diff, and pauses. The team lead reviews the diff in the Orquesta UI, sees that the agent also changed an unrelated test file, and rejects with a comment. The next iteration includes only the intended changes. This loop is fast but safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we don't use cloud sandboxes, even for compute
&lt;/h2&gt;

&lt;p&gt;Some platforms argue that cloud sandboxes are needed for scale, to run many agents in parallel. We solved that with the Agent Grid. You can monitor dozens of local agents from a single screen, with live terminal streams. Each agent runs on a machine you control — your workstation, a beefy dev server, or a CI runner. The grid aggregates their outputs, costs, and statuses.&lt;/p&gt;

&lt;p&gt;This means you can scale to hundreds of agents without ever giving a third party your source code. The compute cost is on your hardware, which is often cheaper than cloud GPU instances for LLM inference. And because the agents run locally, they inherit your network policies: they can only reach the internal services you allow, not arbitrary internet endpoints.&lt;/p&gt;

&lt;p&gt;For teams with strict data residency requirements, this is the only viable model. A cloud sandbox in us-east-1 cannot guarantee that data never leaves the region, but a local agent in your Frankfurt office can.&lt;/p&gt;

&lt;h2&gt;
  
  
  The security model, summarized
&lt;/h2&gt;

&lt;p&gt;Here's what security by default means in Orquesta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code never leaves your machine&lt;/strong&gt;: agent runs locally, git operations stay local.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credentials encrypted with AES-256&lt;/strong&gt;: secrets are encrypted before leaving your device; decryption keys never leave your OS keychain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full audit trail&lt;/strong&gt;: every prompt, terminal output, diff, and cost is logged append-only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality gates&lt;/strong&gt;: AI-simulated changes require team lead approval before real execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local LLM management&lt;/strong&gt;: Orquesta CLI supports Claude, OpenAI, Ollama, vLLM — you can run fully offline if needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No remote execution ever&lt;/strong&gt;: The platform orchestrates but does not touch your code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This model isn't for everyone. If you want a zero-setup browser-based agent, you might accept the cloud sandbox tradeoff. But for engineers who care about where their code lives, local execution is the only sane default. We built Orquesta that way because it's what we wanted for ourselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The shift to local AI agents is part of a broader trend: bringing compute back to the edge where the data already lives. With models getting smaller and faster (thanks to quantization and specialized hardware), running an LLM locally is no longer a compromise. It's an advantage.&lt;/p&gt;

&lt;p&gt;We're continuing to harden the local execution path: more granular permission controls for what the agent can read and write, signed commits for tamper-evident history, and deeper integration with enterprise identity providers. Security isn't a feature we bolt on; it's the foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Takeaway&lt;/strong&gt;: If your AI agent needs your source code to do its job, it should run where the source code lives — on your machine, under your control. Cloud sandboxes add a needless trust boundary. Keep the code local, encrypt the credentials, log everything, and make humans sign off before machines make changes. That's security by default.&lt;/p&gt;

</description>
      <category>security</category>
      <category>localexecution</category>
      <category>aiagents</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Agent Grid: Monitor Dozens of AI Agents From One Screen</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Wed, 07 Oct 2026 12:01:18 +0000</pubDate>
      <link>https://dev.to/orquesta_live/agent-grid-monitor-dozens-of-ai-agents-from-one-screen-3jn0</link>
      <guid>https://dev.to/orquesta_live/agent-grid-monitor-dozens-of-ai-agents-from-one-screen-3jn0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/agent-grid-monitor-dozens-ai-agents-one-screen" rel="noopener noreferrer"&gt;getorquesta.com/blog/agent-grid-monitor-dozens-ai-agents-one-screen&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem: Local Agents Don't Scale in a Terminal
&lt;/h2&gt;

&lt;p&gt;When we first shipped Orquesta, the core promise was simple: write a prompt, get a PR. And for a single agent, that worked fine—you'd watch the output scroll by in your terminal. But the moment you asked Claude to refactor a legacy module, run a security audit on a different repo, and generate test coverage for a third, things got messy. Three terminal windows, three separate contexts, zero overview.&lt;/p&gt;

&lt;p&gt;By the time you're running 10+ agents—say, parallel code reviews across five microservices, a data migration script, and a bug-hunting agent on production logs—you're not developing anymore. You're a system administrator juggling tmux panes and praying nothing fails silently.&lt;/p&gt;

&lt;p&gt;That's why we built Agent Grid. It's not just a fancy dashboard; it's the missing control plane for local AI agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Grid's Architecture: One WebSocket, Many Terminals
&lt;/h2&gt;

&lt;p&gt;Agent Grid lives in the Orquesta web app, but the agents themselves run on your machine. Each agent is a process started via the Orquesta CLI, which wraps Claude CLI or any other local LLM runner. The CLI opens a pseudo-TTY (PTY) and streams raw terminal output over a WebSocket connection to the browser. We render that stream with xterm.js, giving you a fully interactive terminal inside the grid—no iframes, no hacks.&lt;/p&gt;

&lt;p&gt;The result is that you see every line of output in real time, exactly as if you were sitting in front of that local terminal. But now it's one tab, not 12.&lt;/p&gt;

&lt;p&gt;Here's how you launch an agent with grid support:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;orquesta agent run &lt;span class="s2"&gt;"Find security vulnerabilities in the auth service"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--mode&lt;/span&gt; auto &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--grid&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--grid&lt;/code&gt; flag tells the CLI to attach the agent to the Agent Grid session associated with your login. From any browser, you can watch, interact, and even send new prompts to that agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Status Indicators: At a Glance Awareness
&lt;/h2&gt;

&lt;p&gt;A wall of terminals is useless if you can't tell which ones need attention. Each pane in Agent Grid has a status indicator derived from the agent's internal state machine. We track these states:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Idle&lt;/strong&gt; – agent is waiting for a prompt or user input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thinking&lt;/strong&gt; – the LLM is generating a response (streaming tokens).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Acting&lt;/strong&gt; – the agent is executing a command, writing files, or making a git commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Needs Input&lt;/strong&gt; – the agent asked a question and is blocked on a human response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Completed&lt;/strong&gt; – the run finished successfully.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error&lt;/strong&gt; – the run failed with a non-zero exit code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The indicators are color-coded and visible even when the terminal pane is collapsed. So you can glance at the grid and immediately see: two agents are thinking, one is waiting for your approval, and five have completed. No need to click through each terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drag to Rearrange: Spatial Memory for Agents
&lt;/h2&gt;

&lt;p&gt;One of the most underrated features is the ability to drag and drop panes. Why? Because when you're monitoring 15 agents, your brain builds a mental map of where things are. The agent fixing the payment bug is in the top left. The code review agent for repo A is bottom right.&lt;/p&gt;

&lt;p&gt;A static grid that reorders alphabetically or by start time breaks that mental map every time you refresh. Agent Grid lets you drag any pane to any position, and the layout persists across sessions. We store the layout server-side per user, so when you open the dashboard on your laptop after checking your phone, everything is where you left it.&lt;/p&gt;

&lt;p&gt;Under the hood, we use a CSS grid with manual item placement and pointer events for dragging. The drag-and-drop logic is custom—we didn't want a heavyweight library just for moving rectangles. The state updates are batched and sent to the server only when you release the pane, keeping the UI snappy even with dozens of agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Column Layouts: Scannable Long-Running Work
&lt;/h2&gt;

&lt;p&gt;Grid mode is great for overview, but when you have agents that output long logs—think a test suite running for 20 minutes—you need vertical real estate. That's where column layouts come in.&lt;/p&gt;

&lt;p&gt;Agent Grid supports switching between a 2-column, 3-column, or 4-column layout. Each column is a vertical stack of terminal panes. This is particularly useful when you're running long-lived agents like a Batuta task that's migrating a database, and you want to watch its output scroll while keeping an eye on shorter-lived agents above and below.&lt;/p&gt;

&lt;p&gt;We chose to implement column layouts as a simple flexbox arrangement rather than a full grid reflow. It keeps the DOM predictable and allows for smooth transitions when switching layouts.&lt;/p&gt;

&lt;h2&gt;
  
  
  When You Run 10+ Agents Across Projects
&lt;/h2&gt;

&lt;p&gt;Let's talk about a real scenario. Last week I was preparing a release for one of our internal services. I had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 code review agents running on different PRs.&lt;/li&gt;
&lt;li&gt;1 agent generating release notes from commit history.&lt;/li&gt;
&lt;li&gt;2 Batuta agents running integration tests on staging and production read replicas.&lt;/li&gt;
&lt;li&gt;1 agent checking for dependency vulnerabilities.&lt;/li&gt;
&lt;li&gt;4 agents running in parallel on a monorepo to update import paths for a major refactor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's 11 agents. Without Agent Grid, that's 11 terminal windows, 11 different contexts, and no way to see if one of them hung. With Agent Grid, I had a single screen with all 11 panes, each showing live output. I could drag the high-priority release blockers to the top, collapse completed agents, and expand the one that needed input. I even noticed a failing test in one of the Batuta agents because its status turned red while I was focusing on another pane.&lt;/p&gt;

&lt;p&gt;The key insight is that Agent Grid doesn't just scale to more agents—it scales your attention. You can monitor dozens of agents without context switching because everything is visible at once. And because each agent is a real process on your machine with a real terminal, you can always click into a pane and interact directly if you need to.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Implementation Details
&lt;/h2&gt;

&lt;p&gt;For those curious about the tech stack: Agent Grid is built with React on the frontend, using xterm.js for terminal emulation and a custom WebSocket client. The backend (part of the Orquesta platform) maintains a registry of active agent sessions and multiplexes terminal streams. We use a pub/sub model: the CLI publishes output chunks to a Redis channel, and the web server subscribes and forwards to the browser. This decouples the CLI from the web socket connection, so if you close your browser, the agent keeps running and you can reconnect later—your layout and history are preserved.&lt;/p&gt;

&lt;p&gt;The status indicators are computed by a lightweight state machine that runs inside the CLI process. The CLI emits state transitions over the same WebSocket, so the dashboard updates in real time. We deliberately keep the state machine simple—just the six states I listed earlier—to avoid over-engineering. Anything more complex would require a full agent orchestration engine, which is not the goal here. The goal is visibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Agent Grid started as an internal tool to keep our own sanity while dogfooding Orquesta. It turned out to be the feature our users talk about most. The reason is simple: when you run AI agents locally, you're not just running code—you're running a fleet of semi-autonomous processes that need supervision. A terminal window per agent is fine for two or three. For a dozen, you need a control plane. Agent Grid is that control plane, built with the same obsession for real-time, local-first principles as the rest of Orquesta.&lt;/p&gt;

&lt;p&gt;If you're managing multiple AI agents across projects, stop juggling terminals. Put them on a grid.&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>agentgrid</category>
      <category>orquesta</category>
      <category>claudecli</category>
    </item>
    <item>
      <title>From Telegram to Production: Mobile DevOps with AI Agents</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Mon, 05 Oct 2026 12:01:24 +0000</pubDate>
      <link>https://dev.to/orquesta_live/from-telegram-to-production-mobile-devops-with-ai-agents-4g3p</link>
      <guid>https://dev.to/orquesta_live/from-telegram-to-production-mobile-devops-with-ai-agents-4g3p</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/from-telegram-to-production-mobile-devops-ai-agents" rel="noopener noreferrer"&gt;getorquesta.com/blog/from-telegram-to-production-mobile-devops-ai-agents&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem with Desk-Bound DevOps
&lt;/h2&gt;

&lt;p&gt;Most DevOps workflows assume you're sitting at a computer. You have your terminal, your editor, your CI dashboard. But the best ideas often hit when you're away from your desk—on a walk, at lunch, or in a meeting. For years, the answer was to jot a note and handle it later. That delay kills momentum. We wanted to close that gap: capture the intent immediately, and let the agent do the work. So we built a Telegram bot for Orquesta. Send a prompt from your phone, and your local AI agent turns it into a PR. Here's how we built it, and why mobile-first DevOps is more than a gimmick.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Telegram?
&lt;/h2&gt;

&lt;p&gt;We chose Telegram for three reasons: it's fast, it's secure (end-to-end encrypted secret chats), and it has a robust bot API. No need to download another app—most developers already have Telegram on their phone. The bot acts as a thin client: it receives your prompt, authenticates you, and forwards the request to the Orquesta API. The actual work happens on your machine where the Orquesta agent runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Bot
&lt;/h2&gt;

&lt;p&gt;The bot is built with Python and the &lt;code&gt;python-telegram-bot&lt;/code&gt; library. The core is straightforward: define handlers for commands like &lt;code&gt;/start&lt;/code&gt;, &lt;code&gt;/prompt&lt;/code&gt;, and &lt;code&gt;/status&lt;/code&gt;. Here's a minimal setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;telegram.ext&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CommandHandler&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;effective_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
    &lt;span class="c1"&gt;# Check if user is authenticated; if not, send auth instructions
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;is_authenticated&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Welcome! Please authenticate by linking your Orquesta account. Send /auth to get a one-time code.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;re authenticated. Send /prompt &amp;lt;your prompt&amp;gt; to start an agent task.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;effective_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;is_authenticated&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Please authenticate first. Send /auth&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="n"&gt;prompt_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Usage: /prompt &amp;lt;prompt&amp;gt;&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="c1"&gt;# Forward to Orquesta API
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;send_to_orquesta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task created: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;task_id&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;. Agent will start shortly.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;token&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_TELEGRAM_BOT_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;CommandHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;CommandHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;prompt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run_polling&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The real complexity is authentication. You don't want anyone who finds your bot to trigger deployments. We use a one-time code flow: when a user sends &lt;code&gt;/auth&lt;/code&gt;, the bot generates a short-lived code and tells the user to enter it in their Orquesta web settings. The Orquesta backend stores a mapping between the Telegram &lt;code&gt;chat_id&lt;/code&gt; and the authenticated Orquesta user. After that, every command from that chat is trusted. We also use Telegram's built-in user ID (which is unique per account) as part of the identity, but we always verify against our own auth service.&lt;/p&gt;

&lt;p&gt;Here's a snippet of the auth handler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;effective_user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;
    &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generate_one_time_code&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# stored in DB with expiry
&lt;/span&gt;    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reply_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your one-time code: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;. Enter it in Orquesta Settings &amp;gt; Integrations &amp;gt; Telegram.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once entered, the Orquesta web app calls back to our backend which marks the chat as authenticated. All future requests from that chat are signed with the user's API token (never exposed to the chat).&lt;/p&gt;

&lt;h2&gt;
  
  
  From Prompt to Production
&lt;/h2&gt;

&lt;p&gt;When you send &lt;code&gt;/prompt fix the login bug on mobile Safari&lt;/code&gt;, here's what happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The bot forwards the prompt to the Orquesta API as a new task.&lt;/li&gt;
&lt;li&gt;Orquesta creates a task in the Agent Grid and assigns it to your local agent (if online). If your agent is offline, the task waits until it comes online—you'll get a Telegram message when it starts.&lt;/li&gt;
&lt;li&gt;The agent runs on your machine using Claude CLI (or any configured LLM). It streams output in real-time. You can watch it in the Agent Grid from your phone's browser, but you don't have to.&lt;/li&gt;
&lt;li&gt;The agent makes code changes, runs tests, and creates a git commit. If you've enabled quality gates, it can simulate the changes and wait for your approval before pushing to the remote.&lt;/li&gt;
&lt;li&gt;Once done, the bot sends you a summary in Telegram with a link to the PR.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key point: the agent is not running on Telegram's servers or in our cloud. It's running on your infrastructure. The phone is just the remote control.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mobile DevOps Experience
&lt;/h2&gt;

&lt;p&gt;Mobile-first DevOps isn't about doing everything from your phone; it's about eliminating the "I'll do it later" tax. Let me give a real example. A few weeks ago, I was at a coffee shop without my laptop. I got a Slack alert that a production API was returning intermittent 500s. I opened Telegram, typed &lt;code&gt;/prompt investigate the 500s on /api/orders, likely a race condition in the inventory service&lt;/code&gt;, and hit send. The agent on my home office machine picked it up, ran diagnostics, added a mutex, and opened a PR. I reviewed the diff on my phone, approved it, and the agent deployed to staging. By the time I finished my coffee, the fix was live.&lt;/p&gt;

&lt;p&gt;That's the power: you're not writing code from a phone keyboard. You're directing an agent that already has full context. Telegram becomes a command line for your AI workforce.&lt;/p&gt;

&lt;p&gt;Beyond triggering, you can also receive real-time updates: when an agent starts, when it finishes, when a PR is opened. We use Telegram's inline keyboards to provide quick actions like "Approve" or "Open PR".&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Challenges
&lt;/h2&gt;

&lt;p&gt;Building this wasn't trivial. The main issues were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Statelessness&lt;/strong&gt;: Telegram bots don't maintain state between messages. We had to handle multi-step commands (like auth) using a conversation state machine or by storing temporary data with a short TTL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Async execution&lt;/strong&gt;: Agent tasks can take minutes. The bot can't block. We use webhooks and background workers to process commands asynchronously. The &lt;code&gt;/status&lt;/code&gt; command returns a link to the live Agent Grid view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: We enforce rate limiting per user, validate all input, and never send sensitive logs (like API keys) back to Telegram. All agent output is logged in Orquesta, not in the chat.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;The barrier to fixing something shouldn't be your physical location. With AI agents, the bottleneck shifts from "I need to be at my desk" to "I need to know what to ask." Telegram is just one interface; we also have an embeddable widget and a web dashboard. But the mobile aspect is crucial because it aligns with how developers think: in bursts of intent, often away from the keyboard.&lt;/p&gt;

&lt;p&gt;The future of DevOps is not typing commands; it's expressing intent. The agent does the mechanical work. Telegram is a natural front-end for that because it's already in your pocket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Mobile-first DevOps with AI agents is not about replacing your workstation; it's about decoupling intention from execution. The Telegram bot we built for Orquesta is a thin but powerful layer that turns a chat message into a production change. The heavy lifting is done by the agent on your infrastructure, with full audit trail and quality gates. If you're still waiting until you get back to your desk to fix that bug, you're already behind.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aiagents</category>
      <category>telegrambot</category>
      <category>mobiledevops</category>
    </item>
    <item>
      <title>Prompt to Production: How It Actually Works</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Sun, 04 Oct 2026 23:42:06 +0000</pubDate>
      <link>https://dev.to/orquesta_live/prompt-to-production-how-it-actually-works-2k0l</link>
      <guid>https://dev.to/orquesta_live/prompt-to-production-how-it-actually-works-2k0l</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://getorquesta.com/blog/prompt-to-production-how-it-actually-works" rel="noopener noreferrer"&gt;getorquesta.com/blog/prompt-to-production-how-it-actually-works&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The prompt lands
&lt;/h2&gt;

&lt;p&gt;A teammate opens the Orquesta dashboard, types a prompt, selects the &lt;code&gt;api&lt;/code&gt; repo, and hits submit. No YAML, no pipeline config. They write: "Fix the race condition in the token bucket refill. Add a mutex and a test that runs with -race." That's it. The prompt is encrypted at rest and stored with a full audit trail.&lt;/p&gt;

&lt;p&gt;If they're on their phone, they use the Telegram bot. If they're in another tool, they can embed Orquesta via a single script tag. The prompt lands in a queue, tagged with the repo, requested execution mode, and any quality gates. From that moment, the lifecycle is fully observable — every action is logged, every cost is tracked, and every decision is reversible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The agent picks up the work
&lt;/h2&gt;

&lt;p&gt;Orquesta is not a cloud sandbox. The agent runs on your infrastructure — typically a beefy dev machine or a dedicated runner inside your VPC. When a prompt is submitted, the Orquesta CLI on that machine picks it up via a persistent connection to the dashboard. I cannot overstate how important this is: your code and environment variables never leave your network.&lt;/p&gt;

&lt;p&gt;The CLI manages the local LLM runtime. For Claude, it launches &lt;code&gt;claude&lt;/code&gt; in agent mode with the necessary environment. For Ollama or vLLM, it points to your local endpoint. The dashboard syncs with the CLI, so you always know which version of which model is running where.&lt;/p&gt;

&lt;p&gt;Execution modes matter here. &lt;code&gt;Auto&lt;/code&gt; lets the AI pick the best tool — usually Claude CLI for code changes, SSH for direct server commands, or Batuta for autonomous multi-step operations. For this walkthrough, we'll use &lt;code&gt;Agent&lt;/code&gt; mode with Claude CLI.&lt;/p&gt;

&lt;p&gt;On the Agent Grid, this shows up as a new live terminal. You can monitor dozens of agents from one screen, each with its own stream, status, and history. No SSHing into separate boxes, no tailing logs in five terminals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude CLI executes, line by line
&lt;/h2&gt;

&lt;p&gt;From the moment the agent starts, every line of output streams back to the dashboard in real time. There is no "loading" spinner. You see exactly what the agent sees: the system prompt, the CLAUDE.md context, the repo files it reads, the commands it runs.&lt;/p&gt;

&lt;p&gt;Here's what a typical stream looks like on the Agent Grid:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[agent:fix-rate-limiter] Reading CLAUDE.md
[agent:fix-rate-limiter] Reading rate_limiter.go
[agent:fix-rate-limiter] Found tokenBucket struct with refill method
[agent:fix-rate-limiter] Running: go test ./... -race
[agent:fix-rate-limiter] test failed: data race in TestRefillConcurrent
[agent:fix-rate-limiter] Editing rate_limiter.go
[agent:fix-rate-limiter] Added sync.Mutex to tokenBucket
[agent:fix-rate-limiter] Running: go test ./... -race
[agent:fix-rate-limiter] all tests passed
[agent:fix-rate-limiter] Committing: fix(rate-limiter): add mutex to token bucket refill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the lack of hand-waving. The agent doesn't just output a diff; it shows the command, the exit code, and the stdout. If a test fails, you see the failure before the agent tries to fix it. That transparency is the only reason teams trust AI to write production code.&lt;/p&gt;

&lt;p&gt;CLAUDE.md sync deserves a mention. Before the agent touches anything, Orquesta pulls the latest &lt;code&gt;CLAUDE.md&lt;/code&gt; from the repo and injects it into the agent's context. That means whatever coding standards you've documented are enforced on every execution. We use it for things like "never add external dependencies without approval" and "always run &lt;code&gt;go vet&lt;/code&gt; before commit." The agent also sees token usage and cost per step, so there are no surprises at the end of the month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code changes become real git commits
&lt;/h2&gt;

&lt;p&gt;Here's the part that separates Orquesta from a chatbot: the agent doesn't stop at suggestions. It creates a branch, stages files, and makes real git commits. It doesn't use a hidden staging area; every action is a normal &lt;code&gt;git commit&lt;/code&gt; on a feature branch.&lt;/p&gt;

&lt;p&gt;After the agent finished with the rate limiter fix, the repo looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt; &lt;span class="nt"&gt;-3&lt;/span&gt;
a1b2c3d fix&lt;span class="o"&gt;(&lt;/span&gt;rate-limiter&lt;span class="o"&gt;)&lt;/span&gt;: add mutex to token bucket refill
e4f5g6h &lt;span class="nb"&gt;test&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;rate-limiter&lt;span class="o"&gt;)&lt;/span&gt;: cover concurrent refill with &lt;span class="nt"&gt;-race&lt;/span&gt;
f6a7b8c chore: add CLAUDE.md with go &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;-race&lt;/span&gt; requirement
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The commit messages follow the repo's convention because the agent read &lt;code&gt;CLAUDE.md&lt;/code&gt; and the existing commit history. The test was added because the prompt explicitly asked for it, and the agent ran it with &lt;code&gt;-race&lt;/code&gt; to prove the fix.&lt;/p&gt;

&lt;p&gt;The agent then pushes the branch and opens a pull request. In the Orquesta dashboard, the PR link appears in the prompt's timeline, along with the full diff and the streaming log. Nothing is hidden. Every prompt, log, diff, and cost is part of the audit trail, encrypted with AES-256.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests, quality gates, and sign-off
&lt;/h2&gt;

&lt;p&gt;Before the PR can merge, it goes through the normal CI pipeline — whatever you already have. Orquesta doesn't replace your CI; it works alongside it. But we added one extra layer: quality gates.&lt;/p&gt;

&lt;p&gt;A quality gate can be configured to require a human sign-off before the agent executes any "real" changes. In simulation mode, the agent runs the same workflow but stops before committing. It shows the diff, the test plan, and the expected impact. A team lead reviews it in the dashboard, writes a one-line approval, and then the agent proceeds for real.&lt;/p&gt;

&lt;p&gt;In the rate limiter example, we didn't use simulation because the change was small and well-specified. Instead, the PR went to a teammate for review. They approved it, and the merge to &lt;code&gt;main&lt;/code&gt; triggered the production deploy — same as any other PR. The difference? The entire code change was written by an AI agent, with a human verifying the result.&lt;/p&gt;

&lt;p&gt;Role-based permissions control who can submit prompts, who can approve quality gates, and who can merge. A junior dev can open a prompt but not push to production; a team lead can sign off but not change the agent's configuration. That separation of duties is what makes the pipeline safe for production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The orchestration layer that makes it work
&lt;/h2&gt;

&lt;p&gt;Under the hood, Orquesta is an orchestration layer, not a model wrapper. The CLI runs on your machine and manages the agent lifecycle: process spawning, streaming, tool call interception, git operations, and dashboard sync. The dashboard is a control plane: it tracks prompts, agents, logs, diffs, and costs.&lt;/p&gt;

&lt;p&gt;The streaming protocol is simple: the CLI emits events over a WebSocket to the dashboard. Each event has a type, a payload, and a timestamp. The Agent Grid renders these events as live terminals, so you can watch a dozen agents running in parallel without SSHing into each machine.&lt;/p&gt;

&lt;p&gt;For infrastructure tasks, Batuta mode takes a different approach. Instead of Claude CLI, it runs a ReAct loop — Think, Act, Observe, Repeat — over SSH. That's useful for things like "rotate the certificates on the staging load balancer and verify the health check." But for code changes, Claude CLI is the workhorse.&lt;/p&gt;

&lt;p&gt;You can submit a prompt directly from the CLI too:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;orquesta prompt create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--title&lt;/span&gt; &lt;span class="s2"&gt;"Fix rate limiter race condition"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--body&lt;/span&gt; &lt;span class="s2"&gt;"The token bucket in rate_limiter.go has a race when refilling. Add a mutex and a test."&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--repo&lt;/span&gt; api &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--mode&lt;/span&gt; agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That command returns a prompt ID, and the agent picks it up within seconds. The rest of the lifecycle — streaming, commits, PR, sign-off — is exactly the same as if the prompt came from the dashboard or Telegram.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway
&lt;/h2&gt;

&lt;p&gt;Prompt to production isn't magic. It's a pipeline where each step is observable, auditable, and reversible: prompt submission, local execution, streaming output, real commits, automated tests, human review, merge. The AI does the tedious mechanical work — reading files, running commands, writing code, fixing tests — while the team stays in control. That's the only way this works at scale.&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>claudecli</category>
      <category>orquesta</category>
      <category>developerworkflow</category>
    </item>
    <item>
      <title>Mastering Orquesta: Choosing the Right Execution Mode</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Tue, 07 Jul 2026 12:00:26 +0000</pubDate>
      <link>https://dev.to/orquesta_live/mastering-orquesta-choosing-the-right-execution-mode-2a07</link>
      <guid>https://dev.to/orquesta_live/mastering-orquesta-choosing-the-right-execution-mode-2a07</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://orquesta.live/blog/mastering-orquesta-choosing-right-execution-mode" rel="noopener noreferrer"&gt;orquesta.live/blog/mastering-orquesta-choosing-right-execution-mode&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Orquesta has revolutionized the way teams interact with AI-driven coding and deployment processes by offering a flexible and secure platform. A core part of this flexibility comes from its four distinct execution modes: Auto, SSH, Agent, and Batuta. Each mode serves a unique purpose, optimizing various stages of the development and operations lifecycle. Understanding which mode to use when can significantly streamline your workflows. &lt;/p&gt;

&lt;h2&gt;
  
  
  Auto Mode: Let the AI Decide
&lt;/h2&gt;

&lt;p&gt;Auto mode is the go-to option when you're looking to simplify decision-making. The AI intelligently selects the most appropriate execution method based on the task at hand, saving you the need to manually choose between modes. This is particularly useful in scenarios where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quick Turnaround:&lt;/strong&gt; You need a rapid solution without deliberating over the best execution path.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncertain Requirements:&lt;/strong&gt; You're not entirely sure which execution mode best suits your needs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Auto mode is powered by a sophisticated decision engine that evaluates parameters such as complexity, urgency, and context to automate the mode selection process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Example of invoking Auto mode in Orquesta CLI
&lt;/span&gt;&lt;span class="n"&gt;orquesta&lt;/span&gt; &lt;span class="n"&gt;execute&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="n"&gt;auto&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="n"&gt;deploy_feature&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  SSH Mode: Direct and Simple Commands
&lt;/h2&gt;

&lt;p&gt;SSH mode is ideal for executing straightforward, singular commands on remote servers. It’s particularly effective when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quick Fixes:&lt;/strong&gt; You need to make a one-off change or troubleshoot an issue directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Command Simplicity:&lt;/strong&gt; The task involves a simple command that doesn’t require the overhead of a full AI agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using SSH mode ensures minimal overhead and quick execution, leveraging Orquesta’s secure infrastructure to maintain your system’s integrity.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example of using SSH mode&lt;/span&gt;
orquesta execute &lt;span class="nt"&gt;--mode&lt;/span&gt; ssh &lt;span class="nt"&gt;--command&lt;/span&gt; &lt;span class="s2"&gt;"sudo systemctl restart nginx"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Agent Mode: Harness the Power of Claude CLI
&lt;/h2&gt;

&lt;p&gt;Agent mode leverages the full capabilities of the Claude CLI, making it an excellent choice for comprehensive coding tasks. This mode is tailored for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complex Operations:&lt;/strong&gt; When your task involves multiple steps that require AI guidance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detailed Code Execution:&lt;/strong&gt; Tasks that benefit from the Claude CLI’s robust toolset and capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent mode provides a balance between automated intelligence and controlled execution, enabling you to undertake sophisticated projects with precision.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# YAML configuration for deploying with Agent mode&lt;/span&gt;
&lt;span class="na"&gt;execute&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;agent&lt;/span&gt;
  &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;deploy_script.claude&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Batuta Mode: Autonomous Execution
&lt;/h2&gt;

&lt;p&gt;Batuta mode represents Orquesta’s most autonomous execution path. It engages the system in a Think &amp;gt; Act &amp;gt; Observe &amp;gt; Repeat loop, making it perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complex Automation:&lt;/strong&gt; Scenarios requiring continuous adaptation and learning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hands-off Management:&lt;/strong&gt; When you need the AI to manage the process end-to-end without intervention.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Batuta mode is powered by our ReAct framework, autonomously iterating over tasks to achieve the best possible outcome.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"execute"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"batuta"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"script"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"optimize_infrastructure.batuta"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Decision Framework: Choosing the Right Mode
&lt;/h2&gt;

&lt;p&gt;Selecting the right execution mode boils down to understanding the task requirements and operational context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use Auto&lt;/strong&gt; when you want the system to optimize the execution path for general tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Opt for SSH&lt;/strong&gt; when dealing with straightforward commands that require minimal overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select Agent&lt;/strong&gt; when engaging in complex coding tasks requiring the Claude CLI’s capabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go with Batuta&lt;/strong&gt; for fully autonomous, adaptive processes that benefit from iterative learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By aligning your task with the appropriate execution mode, you can enhance efficiency and maintain control over your development and deployment processes. Orquesta’s flexibility is designed to fit the unique needs of any team, allowing for seamless integration and execution.&lt;/p&gt;

&lt;p&gt;Ultimately, the power of Orquesta’s execution modes lies in their ability to adapt to your workflow, ensuring that every project runs smoothly and efficiently.&lt;/p&gt;

</description>
      <category>orquesta</category>
      <category>executionmodes</category>
      <category>automation</category>
      <category>ssh</category>
    </item>
    <item>
      <title>CLAUDE.md Sync: Enforcing AI Coding Standards Efficiently</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Sun, 05 Jul 2026 12:00:19 +0000</pubDate>
      <link>https://dev.to/orquesta_live/claudemd-sync-enforcing-ai-coding-standards-efficiently-4akk</link>
      <guid>https://dev.to/orquesta_live/claudemd-sync-enforcing-ai-coding-standards-efficiently-4akk</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://orquesta.live/blog/claude-md-sync-enforcing-ai-coding-standards" rel="noopener noreferrer"&gt;orquesta.live/blog/claude-md-sync-enforcing-ai-coding-standards&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  CLAUDE.md Sync: Enforcing AI Coding Standards Efficiently
&lt;/h1&gt;

&lt;p&gt;The world of software development thrives on consistency and clarity. One of the most significant challenges teams face is maintaining coding standards across various projects and contributors. With the introduction of AI agents like those in Orquesta, the challenge becomes ensuring these agents produce code that aligns with your team's standards. This is where CLAUDE.md sync comes into play.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of CLAUDE.md in Your Development Workflow
&lt;/h2&gt;

&lt;p&gt;CLAUDE.md is the central piece for maintaining coding standards within Orquesta. A simple yet powerful feature, it allows teams to define coding standards once in a shared document and ensure they are automatically enforced across all AI agent executions. This approach not only standardizes coding practices but also significantly reduces code review efforts, enabling teams to focus on more critical tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Consistency Matters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Maintainability&lt;/strong&gt;: Code that adheres to consistent standards is easier to understand and modify.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality&lt;/strong&gt;: Enforcing standards ensures that the code is free from common pitfalls and adheres to best practices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: With a unified coding style, team members can collaborate more effectively, reducing misunderstandings and increasing productivity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementing CLAUDE.md Sync in Orquesta
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Setting Up Your Standards
&lt;/h3&gt;

&lt;p&gt;Define your coding standards in a CLAUDE.md file and upload it via the Orquesta dashboard. This document acts as the single source of truth for your coding guidelines. It can include rules on syntax, naming conventions, architectural patterns, and more.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# CLAUDE.md&lt;/span&gt;

&lt;span class="gu"&gt;## Naming Conventions&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use camelCase for variable names
&lt;span class="p"&gt;-&lt;/span&gt; Use PascalCase for class names

&lt;span class="gu"&gt;## Code Structure&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Limit file length to 300 lines
&lt;span class="p"&gt;-&lt;/span&gt; Functions should not exceed 50 lines

&lt;span class="gu"&gt;## Documentation&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; All public methods must have Javadoc-style comments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Syncing with AI Agents
&lt;/h3&gt;

&lt;p&gt;Once your CLAUDE.md is set up, Orquesta ensures that every AI agent execution adheres to these rules. Whenever an agent generates code, it checks against the CLAUDE.md specifications, automatically flagging deviations and suggesting corrections.&lt;/p&gt;

&lt;p&gt;This process is seamless and integrated into the Orquesta workflow, requiring no additional setup once the initial standards are defined.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring and Enforcement
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Real-time Feedback
&lt;/h3&gt;

&lt;p&gt;One of the standout features of Orquesta's CLAUDE.md sync is real-time feedback. As agents execute tasks, any code generated is immediately checked against the defined standards. If a generated snippet doesn't conform, live terminals in the Agent Grid display warnings and suggested changes, allowing developers to address issues on the fly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quality Gates
&lt;/h3&gt;

&lt;p&gt;Beyond real-time feedback, Orquesta employs quality gates. These are checkpoints in the workflow where the AI-simulated changes are reviewed against the CLAUDE.md standards. Team leads can sign off on these changes after validation, ensuring human oversight remains part of the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits to the Development Team
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Reduced Review Burden
&lt;/h3&gt;

&lt;p&gt;With CLAUDE.md sync, a significant portion of the code review process is automated. By ensuring AI-generated code adheres to established standards from the outset, teams can drastically reduce the time spent on manual reviews, focusing their efforts on logic and architecture rather than style and syntax.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved Code Quality
&lt;/h3&gt;

&lt;p&gt;Automated enforcement of coding standards leads to consistently high-quality code. This automation guarantees that even when multiple agents or team members contribute to a project, the code remains uniform and easy to integrate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enhanced Collaboration
&lt;/h3&gt;

&lt;p&gt;By embedding a common language through coding standards, teams can collaborate more effectively. This common ground minimizes miscommunication and aligns every team member's output with the project's goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;CLAUDE.md sync is more than just a feature in Orquesta; it's a foundational tool for any team looking to leverage AI in their development process. By ensuring consistent coding standards, it allows AI agents to integrate seamlessly into team workflows, producing reliable, maintainable, and high-quality code.&lt;/p&gt;

&lt;p&gt;Embracing CLAUDE.md sync in your development practices not only enhances code quality but also empowers your team to focus on innovation and problem-solving rather than routine enforcement of coding standards. With this approach, Orquesta makes AI agents a truly effective extension of your development team.&lt;/p&gt;

</description>
      <category>codingstandards</category>
      <category>aiagents</category>
      <category>orquesta</category>
      <category>development</category>
    </item>
    <item>
      <title>Quality Gates: Balance AI Speed with Human Oversight</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Fri, 03 Jul 2026 12:00:25 +0000</pubDate>
      <link>https://dev.to/orquesta_live/quality-gates-balance-ai-speed-with-human-oversight-3mpd</link>
      <guid>https://dev.to/orquesta_live/quality-gates-balance-ai-speed-with-human-oversight-3mpd</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://orquesta.live/blog/quality-gates-balance-ai-speed-human-oversight" rel="noopener noreferrer"&gt;orquesta.live/blog/quality-gates-balance-ai-speed-human-oversight&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Harnessing the power of AI agents can be a double-edged sword. While they offer unprecedented speed and automation, there's a risk of unintended consequences if left unchecked. At Orquesta, we've developed 'quality gates' to balance this dynamic, ensuring AI operates productively while keeping critical human oversight in the loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge of YOLO in AI Operations
&lt;/h2&gt;

&lt;p&gt;In software development and operations, 'YOLO' (You Only Live Once) can often translate to executing changes with minimal oversight. While this can sometimes lead to rapid iterations, it can just as easily result in errors, regressions, and downtime. This is where the challenge lies: how do we leverage the speed and efficiency of AI without compromising the reliability and correctness of our systems?&lt;/p&gt;

&lt;p&gt;With Orquesta, we're keenly aware of this balance. Our platform allows AI agents to autonomously generate code, PRs, and even deploy changes. But this autonomy doesn't mean we're relinquishing control. Instead, we introduce quality gates—guardrails that ensure every AI-generated action is reviewed and approved by a human expert before going live.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Quality Gates Work
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI Simulation of Changes
&lt;/h3&gt;

&lt;p&gt;Before any real execution, our AI agents simulate the proposed changes. This simulation involves running a dry run of the code modifications, anticipated deployments, and potential system impacts. The simulation data is then compiled into a report, which provides a detailed overview of what the AI intends to modify.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review and Sign-Off Process
&lt;/h3&gt;

&lt;p&gt;Once the AI has completed its simulation, the resultant report is passed to a designated team lead or a responsible engineer for review. This step is critical as it introduces a human layer of scrutiny before any changes are committed to the system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Diff Review:&lt;/strong&gt; The reviewer examines the diffs—line-by-line changes proposed by the AI. This step ensures that all modifications align with project requirements and standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact Analysis:&lt;/strong&gt; Beyond the code, the reviewer assesses the broader impact of the changes on the system. This includes checks against potential security vulnerabilities, performance regressions, or compatibility issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sign-Off:&lt;/strong&gt; Only after thorough assessment and approval does the change receive a sign-off. This process acts as a quality gate, preventing unsanctioned or potentially harmful changes from entering production.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's a snapshot of what a typical review workflow might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;QualityGate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ai_simulation_report&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ai_simulation_report&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;review_diffs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# Example of reviewing code diffs
&lt;/span&gt;        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;change&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;changes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify_change&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
                &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Unsafe change detected&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assess_impact&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# Example of assessing broader system impact
&lt;/span&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;predicted_downtime&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Potential downtime detected&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sign_off&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# Final sign-off
&lt;/span&gt;        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Changes approved and signed off&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;verify_change&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="c1"&gt;# Dummy verification function
&lt;/span&gt;        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Role of CLAUDE.md Sync
&lt;/h3&gt;

&lt;p&gt;To maintain coding standards across the team, each execution is synchronized with a &lt;code&gt;CLAUDE.md&lt;/code&gt;, a file that defines coding and operational standards. This ensures every AI-generated action adheres to established guidelines, further reinforcing the quality gate mechanism.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Impact
&lt;/h2&gt;

&lt;p&gt;By implementing quality gates, teams using Orquesta can enjoy the benefits of AI-driven productivity without the accompanying risks of YOLO-style operations. AI agents work swiftly, simulating and preparing changes, but these changes are always subject to human review and approval.&lt;/p&gt;

&lt;p&gt;This system not only prevents errors and potential disruptions but also fosters a culture of accountability and collaboration. Team leads are empowered to make informed decisions, and developers can trust that their tools are working with them, not against them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The balance between automation and oversight is delicate but essential. At Orquesta, our quality gates act as a vital mechanism, ensuring the AI's speed and efficiency complement, rather than compromise, human oversight. The result is a harmonious workflow where AI agents can be fast and productive, but never out of control. This approach minimizes risk while maximizing the potential of AI-driven operations, making it an indispensable asset in modern development environments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>qualityassurance</category>
      <category>automation</category>
      <category>collaboration</category>
    </item>
    <item>
      <title>AI-Native Team Collaboration: Redefining Roles and Workflows</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Wed, 01 Jul 2026 12:00:43 +0000</pubDate>
      <link>https://dev.to/orquesta_live/ai-native-team-collaboration-redefining-roles-and-workflows-13pg</link>
      <guid>https://dev.to/orquesta_live/ai-native-team-collaboration-redefining-roles-and-workflows-13pg</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://orquesta.live/blog/ai-native-team-collaboration-roles-workflows-2026-07-01" rel="noopener noreferrer"&gt;orquesta.live/blog/ai-native-team-collaboration-roles-workflows-2026-07-01&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When AI writes the code, it fundamentally alters the roles and workflows within a software development team. At Orquesta, we’ve seen this transformation firsthand, as our platform redefines how teams collaborate on AI-driven projects. Let's dissect the emergent roles and workflows enabled by Orquesta, emphasizing prompt authors, reviewers, deployers, and the unique interactions with contractors and clients.&lt;/p&gt;

&lt;h2&gt;
  
  
  The New Role of Prompt Authors
&lt;/h2&gt;

&lt;p&gt;In a traditional software development process, the initial code inception often comes from developers who translate requirements into code. With Orquesta, this pivotal role shifts towards a new breed of team member: the prompt author. Prompt authors are responsible for crafting precise and effective prompts that guide AI agents in generating the required code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Crafting Effective Prompts
&lt;/h3&gt;

&lt;p&gt;Writing a prompt is both art and science. A good prompt must convey intent clearly and unambiguously, enabling the AI to produce accurate results. Prompt authors need to possess a deep understanding of both the domain and the capabilities of the AI models like Claude or OpenAI GPT, which are leveraged through the Orquesta platform.&lt;/p&gt;

&lt;p&gt;For instance, a prompt author might create a prompt like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create an API endpoint in Python that handles POST requests to add a new user to the database. Ensure validation checks for email format and password strength.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This prompt succinctly specifies the task, allowing the AI to generate code adhering to these specifications, while freeing developers to focus on higher-level design and problem-solving.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewers: Guardians of Quality
&lt;/h2&gt;

&lt;p&gt;In the AI-enhanced workflow, the role of reviewers becomes crucial. With Orquesta’s quality gates feature, reviewers are tasked with simulating changes and verifying AI-generated code before it proceeds to execution. This role is not just about code correctness but ensuring alignment with coding standards and project requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Simulating Changes with Orquesta
&lt;/h3&gt;

&lt;p&gt;Reviewers utilize the platform's ability to simulate changes. By running the simulations, reviewers can see a preview of what the AI intends to implement, allowing them to catch potential issues early. This reduces the risk of flawed code making it to production, maintaining a high standard of quality throughout the development process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Simulate change: Add validation checks to the user registration API.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command allows reviewers to assess the AI-generated modifications before sign-off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployers and the Power of Automation
&lt;/h2&gt;

&lt;p&gt;With Orquesta, deployment is not merely a technical task but a strategic one. The deployer’s role is to oversee the final step of bringing AI-generated code into the live environment. This process is streamlined with Orquesta’s execution modes, enabling seamless transitions from code generation to deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Autonomous Deployments with Batuta AI
&lt;/h3&gt;

&lt;p&gt;The Batuta AI, Orquesta’s autonomous execution mode, leverages a ReAct loop to automatically execute deployment scripts via SSH. This automation minimizes manual errors and ensures consistent deployment processes across environments.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Orquesta deploy --mode=batuta
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command triggers an automated, intelligent deployment cycle, allowing deployers to focus on optimizing infrastructure and overseeing deployment strategies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contractors and Clients: Expanding the Team
&lt;/h2&gt;

&lt;p&gt;One of Orquesta's most transformative capabilities is its effect on how external collaborators like contractors and clients interact with the core development team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Secure Contractor Collaboration
&lt;/h3&gt;

&lt;p&gt;Orquesta enables contractors to contribute without needing direct SSH access to the infrastructure. With role-based permissions, contractors can submit prompts and involve themselves in the code generation process, all while maintaining strict security protocols.&lt;/p&gt;

&lt;h3&gt;
  
  
  Client Feature Requests
&lt;/h3&gt;

&lt;p&gt;Clients, too, benefit from Orquesta’s collaboration model. They can submit feature requests directly as prompts, giving them a more active role in the development lifecycle. This direct input mechanism can be especially beneficial for agile teams working closely with clients to iterate quickly on product features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Orquesta fundamentally reshapes team dynamics by introducing new roles and workflows centered around AI capabilities. By focusing on prompt authors who craft the initial inputs, reviewers who safeguard quality, and deployers who ensure successful launches, we redefine how teams interact and create software. The integration of contractors and clients as active participants in the development process further enriches the collaborative environment, making Orquesta not just a tool, but a catalyst for innovation.&lt;/p&gt;

&lt;p&gt;As we continue to evolve these workflows, we’re excited to see how Orquesta users push boundaries, not just in software development but in reimagining what collaborative work can achieve.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>teamcollaboration</category>
      <category>workflows</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Efficiently Monitor AI Agents with Orquesta's Agent Grid</title>
      <dc:creator>Orquesta𝄢</dc:creator>
      <pubDate>Mon, 29 Jun 2026 12:00:32 +0000</pubDate>
      <link>https://dev.to/orquesta_live/efficiently-monitor-ai-agents-with-orquestas-agent-grid-1g9o</link>
      <guid>https://dev.to/orquesta_live/efficiently-monitor-ai-agents-with-orquestas-agent-grid-1g9o</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally published at &lt;a href="https://orquesta.live/blog/efficiently-monitor-ai-agents-with-agent-grid-2026-06-29" rel="noopener noreferrer"&gt;orquesta.live/blog/efficiently-monitor-ai-agents-with-agent-grid-2026-06-29&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Managing AI agents efficiently becomes crucial when your team operates multiple AI projects simultaneously. Orquesta's Agent Grid stands out as a robust solution, allowing teams to monitor dozens of AI agents from a single screen. Let's delve into how it works and why it's indispensable when scaling AI operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Agent Grid Interface
&lt;/h2&gt;

&lt;p&gt;Agent Grid is designed with a developer's intuition in mind. When you log into Orquesta and view your Agent Grid, you immediately see an overview of all your active AI agents. Each agent appears as a card on the grid, displaying essential information such as status indicators, recent activity, and quick action buttons.&lt;/p&gt;

&lt;h3&gt;
  
  
  Live Terminals
&lt;/h3&gt;

&lt;p&gt;One of the standout features of the Agent Grid is the live terminal view for each AI agent. When monitoring AI agents, real-time feedback is non-negotiable. With live terminals, you can observe every line of output your AI agent produces in real-time. This feature becomes particularly useful when troubleshooting or analyzing the behavior of an agent executing complex tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Drag-to-Rearrange
&lt;/h3&gt;

&lt;p&gt;Flexibility in managing your workspace is key. Orquesta allows you to customize the Agent Grid with drag-to-rearrange functionality. You can prioritize agents by dragging their cards to different positions on the grid, ensuring that the agents performing critical tasks are always in view. This customizability helps in minimizing cognitive load, allowing you to focus on what's most important.&lt;/p&gt;

&lt;h3&gt;
  
  
  Status Indicators
&lt;/h3&gt;

&lt;p&gt;At a glance, the status indicators on each agent card communicate the health and performance of your agents. Colored icons and brief textual descriptions let you know if an agent is running smoothly, idle, or requires attention. This quick visual feedback enables proactive management, allowing you to address potential issues before they escalate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Column Layouts for Organized Monitoring
&lt;/h2&gt;

&lt;p&gt;The column layout in the Agent Grid means that you can categorize agents based on projects, stages, or any criteria that suit your workflow. For instance, you might have one column for agents actively running code, another for those in testing phases, and a third for agents on standby. This structured view streamlines monitoring, especially when handling multiple projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Agent Grid Matters
&lt;/h3&gt;

&lt;p&gt;With growing AI deployments across various sectors, managing multiple AI agents efficiently can make or break your project timelines. Here's why Agent Grid is essential:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Centralized Control&lt;/strong&gt;: Instead of toggling between various interfaces or tools, Agent Grid centralizes control, saving time and reducing errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: As your projects expand and the number of agents increases, the grid's organized approach scales with your needs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Monitoring&lt;/strong&gt;: Instant feedback from live terminals means faster troubleshooting and fewer disruptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team Collaboration&lt;/strong&gt;: The grid interface is intuitive, enabling seamless collaboration across team members who can access the same overview and insights.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Snippet: Integrating Agent Grid with Batuta
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;orquesta&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize Orquesta client
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;orquesta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;your_api_key_here&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Retrieve active agents
&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_agents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;active&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Display agent statuses
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Agent ID: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Status: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Recent Activity: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recent_activity&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Example of interacting with an agent
&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute_command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ls -la&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Agent Grid by Orquesta is not just a convenience—it's a necessity for teams scaling their AI operations. With features like live terminals, drag-to-rearrange, and intuitive status indicators, it offers a comprehensive overview of your AI agents, facilitating smoother operations and enhancing productivity. As AI continues to permeate every aspect of technology, tools like Agent Grid ensure that we manage and optimize our AI resources effectively.&lt;/p&gt;

</description>
      <category>aiagents</category>
      <category>monitoring</category>
      <category>orquesta</category>
      <category>agentgrid</category>
    </item>
  </channel>
</rss>
