Skip to content

hunterphillips/feather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feather

A lightweight chat interface for LLMs. Designed as a minimalist alternative to Open WebUI or LibreChat.

app home screen

Quick Start

  1. Install dependencies:

    npm install
  2. Configure backend:

    cd server
    cp .env.example .env
    # Edit .env and add your API keys
  3. Start development servers:

    # From project root
    npm run dev
  4. Open browser:

Environment Variables

Server (.env)

PORT=3001
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
GOOGLE_API_KEY=your_google_key_here

Client (.env)

VITE_API_URL=http://localhost:3001

Architecture

  • Frontend: React + TypeScript + Vite + Tailwind CSS + Zustand
  • Backend: Express + Vercel AI SDK

Tech Stack

Layer Technology
Build Tool Vite
Framework React
Language TypeScript
Styling Tailwind CSS
Components Shadcn/UI
State Zustand + useChat hook (messages)
Backend Framework Express
AI Integration Vercel AI SDK

Project Structure

/feather
├── /client                 # React frontend
│   ├── /src
│   │   ├── /components
│   │   │   ├── /ui         # Shadcn primitives
│   │   │   └── /chat       # Chat components
│   │   ├── /lib            # Utilities & types
│   │   ├── /store          # Zustand config store
│   │   └── App.tsx         # Main app with useChat
│   └── package.json
│
├── /server                 # Express proxy
│   ├── /src
│   │   ├── index.ts        # Main server
│   │   ├── providers.ts    # AI SDK provider registry
│   │   ├── config.ts       # Environment config
│   │   ├── types.ts        # TypeScript interfaces
│   │   ├── /routes         # API routes
│   │   └── /lib            # Utilities
│   ├── /data               # db.json, uploads
│   ├── /tests              # Vitest tests
│   └── package.json
│
└── package.json            # Root orchestrator

Development

Requirements

  • Node.js 18+
  • npm or yarn
  • At least one LLM provider API key

Running the Project

# Install all dependencies
npm install

# Start both client and server
npm run dev

Building for Production

npm run build

Running Tests

npm test

API Providers

OpenAI

Get your API key from platform.openai.com

Anthropic

Get your API key from console.anthropic.com

Google

Get your API key from makersuite.google.com

License

MIT

About

A lightweight chat interface for LLMs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages