DEV Community

Mahinsha Nazeer
Mahinsha Nazeer

Posted on • Originally published at Medium on

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

“Just a rather very intelligent system.” — Tony Stark 😀

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 you can install it in one 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:

  1. Multiple browser tabs (ChatGPT, Claude, Gemini)
  2. Constant copy-paste between the terminal and AI tools
  3. 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 providers

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

3. 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)
Enter fullscreen mode Exit fullscreen mode

Provider Abstraction

Each provider implements a common interface:

class BaseProvider(ABC):
    def initialize(self): ...
    def chat(self, message, history, tools): ...
    @property
    def model(self): ...
Enter fullscreen mode Exit fullscreen mode

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 {...}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

First Run

friday
Enter fullscreen mode Exit fullscreen mode

Authenticate using /login, and the session persists for future use.

Uninstall

cd friday && bash uninstall.sh
Enter fullscreen mode Exit fullscreen mode

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:

  1. Define architecture via prompts
  2. Iteratively build features
  3. 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
Enter fullscreen mode Exit fullscreen mode

Closing Note

Friday is built on a simple principle:

Your terminal should not just execute commands — it should assist, decide, and act.

Top comments (0)