Search packages, repositories and app categories

GitHub repositoryMUGISHA-Pascal/Flutter-Perplexity

Flutter-Perplexity

A cross-platform Flutter application that replicates Perplexity AI's interface with real-time chat, AI-powered search, and source citations.

Flutter-Perplexity project cover
Stars
5
Forks
0
Last push (UTC)
Aug 27, 2026
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Flutter Perplexity Clone

A Flutter-based clone of Perplexity AI, featuring real-time chat with AI-powered search capabilities. This application provides an intuitive interface for asking questions and receiving AI-generated responses with source citations.

Features

  • AI-Powered Chat: Real-time conversation with AI assistant
  • Smart Search: WebSocket-based search functionality
  • Cross-Platform: Works on mobile, web, and desktop platforms
  • Modern UI: Clean, responsive design with dark theme
  • Source Citations: View sources for AI responses
  • Real-time Communication: WebSocket integration for live chat
  • Responsive Design: Adaptive layout for different screen sizes

Screenshots

Screenshots will be added here

Getting Started

Prerequisites
  • Flutter SDK (^3.8.1)
  • Dart SDK
  • WebSocket server running on localhost:8000
Installation
  1. Clone the repository

    git clone <repository-url>
    cd flutter_perplexity
    
  2. Install dependencies

    flutter pub get
    
  3. Start the WebSocket server

    # Make sure your WebSocket server is running on localhost:8000
    # The app expects a WebSocket endpoint at ws://localhost:8000/ws/chat
    
  4. Run the application

    flutter run
    

Project Structure

lib/
├── main.dart              # App entry point
├── pages/                 # Screen components
│   ├── home_page.dart     # Main home screen
│   └── chat_page.dart     # Chat interface
├── widgets/               # Reusable UI components
│   ├── search_section.dart
│   ├── answer_section.dart
│   ├── sources_section.dart
│   ├── side_bar.dart
│   ├── side_bar_button.dart
│   └── search_bar_button.dart
├── services/              # Business logic and API calls
│   └── chat_web_service.dart
└── theme/                 # App styling and colors
    └── colors.dart

Dependencies

  • flutter: Core Flutter framework
  • google_fonts: Custom typography (Inter font)
  • web_socket_client: Real-time communication
  • flutter_markdown: Markdown rendering for responses
  • skeletonizer: Loading animations
  • cupertino_icons: iOS-style icons

WebSocket API

The app communicates with a WebSocket server at ws://localhost:8000/ws/chat:

Message Format
  • Send: {"query": "user question"}
  • Receive:
    • Search results: {"type": "search_result", ...}
    • Content: {"type": "content", ...}

Development

Running Tests
flutter test
Building for Production
# Android
flutter build apk

# iOS
flutter build ios

# Web
flutter build web

# Desktop
flutter build windows
flutter build macos
flutter build linux

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by Perplexity AI
  • Built with Flutter and Dart
  • Uses WebSocket for real-time communication

Support

If you encounter any issues or have questions, please open an issue on GitHub.

MUGISHA Pascal GitHub avatar
GitHub author

MUGISHA Pascal ↗

Software Engineer | Building AI & scalable digital products

Kigali, Rwanda
LanguagesDartC++CMakeSwiftCHTMLKotlinObjective-C

Categories

Dependencies used

Dependency list 8 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗