<?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: Brahim G</title>
    <description>The latest articles on DEV Community by Brahim G (@brahim_g).</description>
    <link>https://dev.to/brahim_g</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3824325%2Fda33b396-7cd2-43c9-b520-04e7c90e3c0e.jpg</url>
      <title>DEV Community: Brahim G</title>
      <link>https://dev.to/brahim_g</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/brahim_g"/>
    <language>en</language>
    <item>
      <title>I Built an LLM-Native Terminal Emulator for macOS (Rust, Swift, Metal)</title>
      <dc:creator>Brahim G</dc:creator>
      <pubDate>Sat, 14 Mar 2026 17:45:02 +0000</pubDate>
      <link>https://dev.to/brahim_g/i-built-an-llm-native-terminal-emulator-for-macos-rust-swift-metal-1i49</link>
      <guid>https://dev.to/brahim_g/i-built-an-llm-native-terminal-emulator-for-macos-rust-swift-metal-1i49</guid>
      <description>&lt;p&gt;Every day I open my terminal, start Claude Code or Gemini CLI, and spend the first few minutes configuring the right context for the project.&lt;/p&gt;

&lt;p&gt;Setting up &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;br&gt;
Connecting MCP servers.&lt;br&gt;
Finding the right prompts.&lt;/p&gt;

&lt;p&gt;After doing this hundreds of times, I started asking a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why can't the terminal do this automatically?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Awal Terminal&lt;/strong&gt; is a free, open-source macOS terminal emulator designed for developers who work with AI coding agents.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Problem With Using AI Agents in a Regular Terminal
&lt;/h2&gt;

&lt;p&gt;Traditional terminals treat AI output like any other text stream.&lt;/p&gt;

&lt;p&gt;But AI coding sessions are fundamentally different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They produce structured output, tool calls, code blocks, diffs&lt;/li&gt;
&lt;li&gt;They require project-specific context to work well&lt;/li&gt;
&lt;li&gt;They consume tokens and money you usually can't see&lt;/li&gt;
&lt;li&gt;They often run long tasks where you're just waiting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A regular terminal has no idea what's happening inside the AI session.&lt;/p&gt;

&lt;p&gt;It just shows text.&lt;/p&gt;


&lt;h2&gt;
  
  
  What Makes Awal Different
&lt;/h2&gt;

&lt;p&gt;Awal Terminal treats AI coding workflows as a &lt;strong&gt;first-class concept&lt;/strong&gt;, not an afterthought.&lt;/p&gt;

&lt;p&gt;Instead of acting like a passive text viewer, it understands the structure of an AI session and surfaces useful information.&lt;/p&gt;

&lt;p&gt;Here are the main ideas behind it.&lt;/p&gt;


&lt;h2&gt;
  
  
  AI Components
&lt;/h2&gt;

&lt;p&gt;This is the feature I'm most excited about.&lt;/p&gt;

&lt;p&gt;When you open a project directory, Awal automatically detects your stack:&lt;/p&gt;

&lt;p&gt;Next.js, Django, Rails, Flask, NestJS, Flutter, and more.&lt;/p&gt;

&lt;p&gt;It then injects the right &lt;strong&gt;skills, prompts, rules, and MCP servers&lt;/strong&gt; into your AI session.&lt;/p&gt;

&lt;p&gt;No manual setup required.&lt;/p&gt;

&lt;p&gt;You can also share these configurations across teams using Git registries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[ai_components.registry.team]&lt;/span&gt;
&lt;span class="py"&gt;source&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"git"&lt;/span&gt;
&lt;span class="py"&gt;url&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://github.com/your-org/awal-components"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everyone on the team gets the same AI setup, automatically synced.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI Side Panel
&lt;/h2&gt;

&lt;p&gt;While your AI agent runs, the side panel shows what's actually happening in real time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;token usage and cost&lt;/li&gt;
&lt;li&gt;context window fill level&lt;/li&gt;
&lt;li&gt;file references&lt;/li&gt;
&lt;li&gt;git changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This information normally stays invisible inside a terminal session.&lt;/p&gt;




&lt;h2&gt;
  
  
  Smart Output Folding
&lt;/h2&gt;

&lt;p&gt;AI agents produce a lot of structured output.&lt;/p&gt;

&lt;p&gt;Tool calls, code blocks, and diffs can easily flood the terminal.&lt;/p&gt;

&lt;p&gt;Awal automatically collapses these into foldable sections so you can expand only what you care about.&lt;/p&gt;

&lt;p&gt;Large sessions become navigable instead of overwhelming.&lt;/p&gt;




&lt;h2&gt;
  
  
  Multi-Provider Profiles
&lt;/h2&gt;

&lt;p&gt;Switch between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;Gemini CLI&lt;/li&gt;
&lt;li&gt;Codex CLI&lt;/li&gt;
&lt;li&gt;plain shell&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each provider gets its own saved configuration.&lt;/p&gt;

&lt;p&gt;One terminal, multiple AI agents.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resume AI Sessions
&lt;/h2&gt;

&lt;p&gt;Awal keeps track of past AI sessions.&lt;/p&gt;

&lt;p&gt;From the startup menu you can reopen previous sessions, including Claude sessions with their turn count and timestamps.&lt;/p&gt;

&lt;p&gt;This makes it easier to continue long-running workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  Voice Input
&lt;/h2&gt;

&lt;p&gt;Awal includes voice input powered by &lt;strong&gt;Whisper running entirely on-device&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;push-to-talk&lt;/li&gt;
&lt;li&gt;continuous mode&lt;/li&gt;
&lt;li&gt;wake word mode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing leaves your machine.&lt;/p&gt;

&lt;p&gt;It's surprisingly useful when reviewing AI-generated code and giving quick instructions.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;The project is split into two main layers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;core/  → Rust
        terminal emulation
        ANSI parsing
        AI output analysis

app/   → Swift
        macOS UI
        Metal GPU rendering
        voice input
        AI side panel
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Rust handles the heavy lifting.&lt;br&gt;
Swift handles the macOS-native interface.&lt;/p&gt;

&lt;p&gt;Rendering is done using &lt;strong&gt;Metal GPU acceleration&lt;/strong&gt; with a glyph atlas and triple buffering.&lt;/p&gt;

&lt;p&gt;The result is a smooth &lt;strong&gt;120fps terminal&lt;/strong&gt;, even when scrolling through thousands of lines of AI output.&lt;/p&gt;

&lt;p&gt;This is not an Electron wrapper. It's a native macOS application.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I work with AI coding agents every day.&lt;/p&gt;

&lt;p&gt;Over time I got frustrated with the friction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;manually configuring context&lt;/li&gt;
&lt;li&gt;scrolling through huge walls of output&lt;/li&gt;
&lt;li&gt;switching between providers&lt;/li&gt;
&lt;li&gt;losing visibility into token costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I started building Awal Terminal on weekends, and it quickly became the tool I reach for whenever I start a new coding session.&lt;/p&gt;


&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Install via Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap AwalTerminal/tap
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; awal-terminal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or download the latest release from GitHub.&lt;/p&gt;

&lt;p&gt;Awal Terminal is &lt;strong&gt;free and open source (MIT licensed)&lt;/strong&gt; and currently available for macOS.&lt;/p&gt;

&lt;p&gt;If you work with AI coding agents daily, I'd love to hear your feedback, especially on the &lt;strong&gt;AI Components system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/AwalTerminal/Awal-terminal" rel="noopener noreferrer"&gt;https://github.com/AwalTerminal/Awal-terminal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, consider starring the project. It helps other developers discover it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
