<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged multiproviderai</title>
<link>https://coderlegion.com/tag/multiproviderai</link>
<description>Powered by Question2Answer</description>
<item>
<title>Building Friday: A Multi-Provider AI Agent That Lives in Your Terminal</title>
<link>https://coderlegion.com/14514/building-friday-a-multi-provider-ai-agent-that-lives-in-your-terminal</link>
<description>&lt;p&gt;Building Friday: A Multi-Provider AI Agent That Lives in Your Terminal&lt;/p&gt;
&lt;p&gt;Every DevOps Engineer has a terminal open. What if that terminal could think?&lt;br&gt;
Friday - an open-source, multi-provider AI agent that runs entirely in your terminal. No browser tabs, no Electron apps, no subscriptions bundling features you don't need. Just a clean, minimal CLI that connects to Gemini, ChatGPT, Claude, GitHub Copilot, or your own local Ollama server - and lets you switch between them with a single command.&lt;br&gt;
In this post, I'll walk through why I built it, the architecture behind it, and how you can install it in one command.&lt;br&gt;
In this post, I'll walk through why I built it, the architecture behind it, and how to install it with a single command.&lt;br&gt;
What Friday Delivers&lt;br&gt;
Friday is a terminal-native AI agent with three core capabilities:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multi-Provider Chat&lt;br&gt;
Connect to any major AI provider through a unified interface:&lt;br&gt;
The Problem&lt;br&gt;
Modern AI workflows are fragmented:&lt;br&gt;
Multiple browser tabs (ChatGPT, Claude, Gemini)&lt;br&gt;
Constant copy-paste between the terminal and AI tools&lt;br&gt;
No direct execution - only suggestions&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Even simple queries, like checking disk usage, require manual execution after being asked.&lt;br&gt;
The requirement was clear:&lt;br&gt;
 A single interface that supports multiple models and can perform real actions on the machine.&lt;br&gt;
What Friday Delivers&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Unified Multi-Provider Interface&lt;br&gt;
Friday integrates major AI providers into one CLI:&lt;br&gt;
available providersModel availability is dynamically fetched via APIs - ensuring accuracy without manual updates.&lt;/li&gt;
&lt;li&gt;Agentic Capabilities for DevOps&lt;br&gt;
Friday is built for execution, not just conversation.&lt;br&gt;
Core capabilities:&lt;br&gt;
Shell command execution (with confirmation)&lt;br&gt;
File operations (read, write, search)&lt;br&gt;
Web search integration&lt;br&gt;
System diagnostics (CPU, memory, disk)&lt;br&gt;
Python execution&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example:&lt;br&gt;
 Instead of suggesting commands, Friday directly performs tasks like file discovery or diagnostics.&lt;br&gt;
All critical operations require explicit confirmation, ensuring safety.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Voice Interaction&lt;br&gt;
Voice support enables hands-free interaction:&lt;br&gt;
Toggle via /voice&lt;br&gt;
Speak queries with empty input&lt;br&gt;
Configure pitch, speed, and voice profile&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is particularly useful during troubleshooting or multitasking scenarios.&lt;br&gt;
Architecture Overview&lt;br&gt;
Friday follows a modular, provider-agnostic architecture:&lt;br&gt;
Application Layer (CLI + Commands)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    ↓
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Friday Client (Abstraction Layer)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    ↓
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Providers (Gemini, OpenAI, Claude, Copilot, Ollama)&lt;br&gt;
Provider Abstraction&lt;br&gt;
Each provider implements a common interface:&lt;br&gt;
class BaseProvider(ABC):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;def initialize(self): ...
def chat(self, message, history, tools): ...
@property
def model(self): ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This enables seamless extensibility with minimal integration effort.&lt;br&gt;
Tool System&lt;br&gt;
Tools are defined once and adapted across providers:&lt;br&gt;
@register_tool&lt;br&gt;
def get_system_info():&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;return {...}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A universal schema ensures compatibility across different APIs.&lt;br&gt;
Dynamic Model Discovery&lt;br&gt;
Friday queries provider APIs at runtime:&lt;br&gt;
Eliminates outdated configurations&lt;br&gt;
Supports local and remote Ollama instances&lt;br&gt;
Ensures real-time model availability&lt;/p&gt;
&lt;p&gt;Command System&lt;br&gt;
A structured command interface simplifies interaction:&lt;br&gt;
/login         Connect provider&lt;br&gt;
/switch        Change provider&lt;br&gt;
/model         Select model&lt;br&gt;
/logout        Remove credentials&lt;br&gt;
/voice         Toggle voice&lt;br&gt;
/voice config  Configure voice&lt;br&gt;
/tools         List tools&lt;br&gt;
/help          Show commands&lt;br&gt;
bye            Exit&lt;br&gt;
Credentials are securely stored with restricted permissions.&lt;br&gt;
User Interface&lt;br&gt;
Built using the Rich library, the UI is clean and minimal:&lt;br&gt;
Color-coded provider panels&lt;br&gt;
Markdown rendering with syntax highlighting&lt;br&gt;
Interactive menus&lt;br&gt;
Lightweight terminal-first design&lt;/p&gt;
&lt;p&gt;The focus remains on usability rather than visual complexity.&lt;br&gt;
Getting Started&lt;br&gt;
Installation&lt;br&gt;
git clone &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/mahinshanazeer/friday.git&quot;&gt;https://github.com/mahinshanazeer/friday.git&lt;/a&gt; &amp;amp;&amp;amp; cd friday &amp;amp;&amp;amp; bash install.sh&lt;br&gt;
First Run&lt;br&gt;
friday&lt;br&gt;
Authenticate using /login, and the session persists for future use.&lt;br&gt;
Uninstall&lt;br&gt;
cd friday &amp;amp;&amp;amp; bash uninstall.sh&lt;br&gt;
Key Learnings&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Provider APIs Differ Significantly&lt;br&gt;
Function-calling implementations vary widely across providers, requiring a unified abstraction layer.&lt;/li&gt;
&lt;li&gt;Terminal UX Matters&lt;br&gt;
Design improvements significantly impact usability and adoption.&lt;/li&gt;
&lt;li&gt;Reliability Is Critical&lt;br&gt;
Graceful handling of missing dependencies or failures ensures stability.&lt;/li&gt;
&lt;li&gt;Persistence Improves Experience&lt;br&gt;
Credential storage transformed the tool from experimental to practical.&lt;br&gt;
Built Using AI&lt;br&gt;
Friday itself was built using AI-assisted development:&lt;br&gt;
Antigravity - architecture and scaffolding&lt;br&gt;
GitHub Copilot - inline coding&lt;br&gt;
Claude - design validation and reviews&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Workflow:&lt;br&gt;
Define architecture via prompts&lt;br&gt;
Iteratively build features&lt;br&gt;
Debug and refine using AI&lt;/p&gt;
&lt;p&gt;Result: A production-ready system built in hours rather than weeks.&lt;br&gt;
Roadmap&lt;br&gt;
Planned improvements include:&lt;br&gt;
Streaming responses&lt;br&gt;
Chat export functionality&lt;br&gt;
Plugin architecture&lt;br&gt;
Multi-modal input (image support)&lt;br&gt;
Git integration&lt;/p&gt;
&lt;p&gt;Repository&lt;br&gt;
 &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/mahinshanazeer/friday&quot;&gt;https://github.com/mahinshanazeer/friday&lt;/a&gt;&lt;br&gt;
git clone &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/mahinshanazeer/friday.git&quot;&gt;https://github.com/mahinshanazeer/friday.git&lt;/a&gt; &amp;amp;&amp;amp; cd friday &amp;amp;&amp;amp; bash install.sh&lt;br&gt;
Closing Note&lt;br&gt;
Friday is built on a simple principle:&lt;br&gt;
Your terminal should not just execute commands - it should assist, decide, and act.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/14514/building-friday-a-multi-provider-ai-agent-that-lives-in-your-terminal</guid>
<pubDate>Sat, 11 Apr 2026 16:07:32 +0000</pubDate>
</item>
</channel>
</rss>