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