Building Friday: A Multi-Provider AI Agent That Lives in Your Terminal

Building Friday: A Multi-Provider AI Agent That Lives in Your Terminal

Leader posted Originally published at medium.com 3 min read

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:

  1. 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

  1. 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.
  2. 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.

  1. 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

  1. Provider APIs Differ Significantly
    Function-calling implementations vary widely across providers, requiring a unified abstraction layer.
  2. Terminal UX Matters
    Design improvements significantly impact usability and adoption.
  3. Reliability Is Critical
    Graceful handling of missing dependencies or failures ensures stability.
  4. 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.

2 Comments

1 vote
0
1 vote
1
2
1

More Posts

How I Built a React Portfolio in 7 Days That Landed ₹1.2L in Freelance Work

Dharanidharan - Feb 9

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelskiverified - Mar 19

Sovereign Intelligence: The Complete 25,000 Word Blueprint (Download)

Pocket Portfolioverified - Apr 1

5 Web Dev Pitfalls That Are Silently Killing Your Projects (With Real Fixes)

Dharanidharan - Mar 3

Architecting a Local-First Hybrid RAG for Finance

Pocket Portfolioverified - Feb 25
chevron_left

Related Jobs

Commenters (This Week)

3 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!