Skip to content

imApoorva36/Echo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

177 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Echo

A proactive AI assistant that’s always listening and executes without you having to ask.

Most chatbots in the market are reactive in nature. You ask, they respond. But what if you didn’t have to ask? Think of an ambient, proactive virtual assistant, that connects to your favourite tools, learns from your behaviour and does things without you having to ask - always with your permission.

Screenshots

List of completed actions
List of completed actions
Agent interaction for a particular action
Agent interaction for a particular action
All toolkits
All toolkits
Details of a connected toolkit
Details of a connected toolkit
All thoughts
All thoughts
Adding a new thought
Adding a new thought
Granting triggers when connecting a toolkit
Granting triggers when connecting a toolkit
Settings
Settings
Interactive notification
Interactive notification

Architecture Diagram

Echo Flow Diagram
Flow Diagram

✨ Features

Echo has two core entities: Actions and Thoughts.

  1. Actions are multi-step tasks executed in the background using your connected apps. Echo proposes actions automatically, which users can accept, reject, or modify with additional context.

  2. Thoughts are links, notes, screenshots, or voice notes added by users. Beyond storage, Echo remembers and uses them as long-term context to improve future actions.

Example flow:

  1. Users sign up, complete onboarding, and connect everyday apps like Mail, Calendar, Drive, and To-Do, with full control to customize, modify, or revoke fine-grained access anytime.
  2. When activity occurs in a connected app (for example, a new calendar event), Echo utilises this trigger, gathers relevant context, and executes cross-app, multi-step actions automatically, such as checking availability, RSVPing, and preparing a meeting deck using past documents.
  3. Thoughts continuously augment Echo’s understanding, guiding and refining actions over time.

🛠️ Tech Stack

  • Frontend: React Native with Expo, TypeScript, NativeWind (Tailwind CSS)
  • State: Zustand (local UI + auth state), TanStack Query (Supabase data)
  • Backend: Node.js, Express.js, TypeScript, Drizzle ORM
  • Database: PostgreSQL (via Supabase)
  • Auth: Supabase Auth
  • Integrations: Composio (tool integrations), Supermemory (memory management)

📝 Setup Instructions

Prerequisites

  • Node.js v18 or higher
  • pnpm (npm install -g pnpm)
  • Supabase project (for database and auth)
  • Composio account (for tool integrations)
  • Supermemory account (for memory management)
  • A Gemini API key as we are using Gemini as the LLM for the backend.

📱 Frontend (Mobile app)

  1. Navigate to the frontend directory:
cd echo
  1. Install dependencies:
pnpm install
  1. Copy the .env.example file and name it .env:
cp .env.example .env
  1. Fill in the required environment variables in the .env file.

  2. Start the development server:

npx expo start
  1. You will see a QR code. Scan it with the Expo Go app to see the app in your phone.

💻 Backend

  1. Navigate to the backend directory:
cd backend
  1. Install dependencies:
pnpm install
  1. Create a copy of the .env.example file and name it .env:
cp .env.example .env
  1. Fill in the required environment variables in the .env file.

  2. Run database migrations:

pnpm db:migrate
  1. Start the development server:
pnpm start

The server will start on http://localhost:8000

  1. Note on testing notifications:
    • Expose your backend server via an ngrok tunnel or a similar service.
    • Head to the composio dashboard and update the webhook URL to the ngrok URL to receive events.
    • This can only be tested on a physical device in the development build of the app.

Built with ❤️ by Team Echo!

About

The proactive AI assistant that acts before you ask

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages