Skip to content

mosesmmoisebidth/desktop-agent-model

Repository files navigation

Goose AI πŸͺΏπŸ€–

Rust License Build

AI-powered coding assistant desktop app built with Rust

πŸš€ Features

  • πŸ—οΈ Project Scaffolding - Generate project structures instantly
  • πŸ‘€ Code Review - AI-powered code analysis and suggestions
  • ⚑ Smart Coding - Intelligent code completion and generation
  • πŸ§ͺ Auto Testing - Automated test creation and execution

πŸ“¦ Installation

Binary Release

# Download latest release
curl -L https://github.com/mosesmmoisebidth/goose-ai/releases/latest/download/goose-ai-x86_64.tar.gz | tar xz
./goose-ai

From Source

git clone https://github.com/mosesmoisebidth/goose-ai.git
cd goose-ai
cargo build --release
./target/release/goose-ai

⚑ Quick Start

Launch Goose AI

# Start the desktop app
goose-ai

# Or with CLI mode
goose-ai --cli

Basic Commands

# Create new project
goose-ai scaffold --template rust-cli my-project

# Review code
goose-ai review src/main.rs

# Generate code
goose-ai code --prompt "create a REST API handler"

# Run tests
goose-ai test --auto-generate

🎯 Core Modules

Project Scaffolding

// Generate project structure
goose_ai::scaffold::create_project(
    template: "rust-web",
    name: "my-api",
    features: vec!["async", "database"]
);

Templates Available:

  • rust-cli - Command line applications
  • rust-web - Web services with Axum
  • rust-gui - Desktop apps with Tauri
  • rust-lib - Library crates

Code Review

// AI-powered code analysis
let review = goose_ai::review::analyze_file("src/lib.rs").await?;
println!("Issues found: {}", review.issues.len());
println!("Suggestions: {}", review.suggestions.len());

Review Features:

  • Security vulnerability detection
  • Performance optimization hints
  • Code style improvements
  • Best practice recommendations

Smart Coding Assistant

// Generate code from natural language
let code = goose_ai::code::generate(
    prompt: "implement binary search algorithm",
    language: "rust",
    context: current_file_content
).await?;

Coding Features:

  • Context-aware completions
  • Documentation generation
  • Refactoring suggestions
  • Error fix recommendations

Auto Testing

// Generate and run tests
let test_suite = goose_ai::test::generate_for_file("src/utils.rs").await?;
goose_ai::test::execute_suite(test_suite).await?;

Testing Features:

  • Unit test generation
  • Integration test scaffolding
  • Mock generation
  • Coverage reporting

πŸ–₯️ Desktop Interface

Goose AI Screenshot

Main Dashboard

  • File Explorer with AI insights
  • Code Editor with smart suggestions
  • Terminal with AI command assistance
  • Project Overview with health metrics

Keyboard Shortcuts

  • Ctrl+Shift+G - Generate code
  • Ctrl+Shift+R - Review current file
  • Ctrl+Shift+T - Run tests
  • Ctrl+Shift+S - Scaffold new component

βš™οΈ Configuration

Config File (~/.goose-ai/config.toml)

[ai]
model = "gpt-4"
api_key = "your-api-key"
max_tokens = 2048

[editor]
theme = "dark"
font_size = 14
auto_save = true

[scaffold]
default_template = "rust-cli"
git_init = true

Environment Variables

export GOOSE_AI_API_KEY="your-api-key"
export GOOSE_AI_MODEL="gpt-4"
export GOOSE_AI_LOG_LEVEL="info"

πŸ“š Examples

Create a Web API Project

# Generate Rust web API with database
goose-ai scaffold --template rust-web my-api --features database,auth

# Review the generated code
cd my-api
goose-ai review src/main.rs

# Generate tests
goose-ai test --generate-all

AI Code Assistant Session

# Start interactive coding session
goose-ai code --interactive

> "create a function to parse JSON configuration"
# AI generates parse_config() function

> "add error handling to the function"  
# AI adds Result<T, E> return type and proper error handling

> "write tests for this function"
# AI generates comprehensive test suite

πŸ› οΈ Development

Build Requirements

  • Rust 1.70+
  • System dependencies: gtk3-dev, webkit2gtk-dev (Linux)

Development Commands

# Run in development mode
cargo run

# Run tests
cargo test

# Build for release
cargo build --release

# Format code
cargo fmt

# Lint code
cargo clippy

🀝 Contributing

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

πŸ“„ License

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

πŸ†˜ Support


Built with πŸ¦€ Rust and ❀️

About

Desktop App version of Goose AI with Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published