Skip to content

mycosavant/warp-clone

Repository files navigation

Warp Terminal Clone

An open-source terminal emulator inspired by Warp, built with Rust, focusing on modern features, AI assistance, and developer productivity.

Project Status: Active Development License: MIT

Note: This project is currently in active development. Features are being implemented incrementally, and the application is not yet ready for production use.

Overview

This project aims to create an open-source alternative to the Warp terminal with similar features and capabilities. We're building a modern terminal experience that integrates AI assistance, advanced text editing, and a developer-friendly interface.

Features

Currently Implemented

  • Basic terminal emulation
  • Command history with improved search
  • Simple theming system
  • Initial keyboard shortcut framework

In Development

  • AI Command Assistance
    • Command syntax suggestions
    • Error explanation and resolution
    • Context-aware command completion
    • Natural language to command translation
  • Enhanced Text Editing
    • Block editing and selection
    • Command blocks with execution controls
    • Syntax highlighting for shell scripts and common languages
  • Workflow Improvements
    • Command Palette for quick access to terminal functions
    • Session management with named workspaces
    • Multiple panes and split views
  • Integration Capabilities
    • Git integration with status indicators
    • Project-specific configurations and environments
    • Extensibility via plugins (planned)

Installation

Prerequisites

  • Rust 1.70 or newer
  • Cargo package manager
  • Linux, macOS, or Windows with WSL

From Source

# Clone the repository
git clone https://github.com/yourusername/warp-terminal-clone.git
cd warp-terminal-clone

# Build the project
cargo build --release

# Install the binary (optional)
cargo install --path .

Package Managers

Note: Package manager installations are not yet available. They will be added once the project reaches a stable release.

Quick Start

After installation, you can launch the terminal with:

warp-terminal-clone

Configuration

Current configuration options are limited but can be modified in the ~/.config/warp-terminal-clone/config.toml file:

# Example configuration
[appearance]
theme = "dark"
font_size = 14
font_family = "JetBrains Mono"

[behavior]
enable_ai_suggestions = true
autosave_history = true

Usage Examples

Basic Terminal Operations

The terminal supports standard operations you would expect from any terminal emulator:

# Navigate directories
cd ~/projects

# Run commands
ls -la

# Use pipes and redirections
cat file.txt | grep "pattern" > results.txt

AI-Assisted Features (In Development)

# Ask for help with a command
# (Prefix with "?" to activate AI assistance)
? how to find all files modified in the last 7 days

# Get an explanation for an error
# (Use "??" after an error occurs)
some-command-with-error
?? why did this fail

Keyboard Shortcuts

Shortcut Action
Ctrl+T New tab
Ctrl+W Close tab
Ctrl+Space Open command palette
Ctrl+/ Toggle AI helper
F1 Show help

Development Setup

Development Requirements

  • Rust toolchain (rustc, cargo)
  • Development libraries:
    • On Ubuntu/Debian: apt install libx11-dev libxcb-shape0-dev libxcb-xfixes0-dev
    • On Fedora/RHEL: dnf install libX11-devel libxcb-devel
    • On macOS: brew install pkg-config

Building for Development

# Clone repository
git clone https://github.com/yourusername/warp-terminal-clone.git
cd warp-terminal-clone

# Set up development environment
cargo check
cargo test

# Run in development mode
cargo run -- --debug

Project Structure

src/
├── ai/          # AI assistance components
├── terminal/    # Terminal emulation core
├── ui/          # User interface components
├── config/      # Configuration handling
├── commands/    # Command implementation
└── main.rs      # Application entry point

Contributing

Contributions are welcome! Please see our CONTRIBUTING.md file for details.

Getting Started with Contributions

  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

Code Style

We follow the Rust standard formatting guidelines. Please run cargo fmt before submitting changes.

License

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

Screenshots

Coming Soon: Screenshots and GIFs demonstrating key features will be added as they are implemented.

Terminal Interface

[placeholder for terminal interface screenshot]

AI Assistance in Action

[placeholder for AI assistance demo]

Multi-pane Workflow

[placeholder for multi-pane workflow screenshot]


Acknowledgments

Roadmap

See the open issues for a list of proposed features and known issues. We're actively working on expanding the AI capabilities and improving terminal performance.


Project Status: Alpha - Expect breaking changes and incomplete features

About

An open source terminal AI features

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published