An open API service indexing awesome lists of open source software.

https://github.com/yllvar/deepseek-engineer

Save time and boost productivity with DeepSeek Engineer, a powerful coding assistant powered by DeepSeek's R1 capabilities. This project is designed to help you write code faster, debug smarter, and streamline your development workflow.
https://github.com/yllvar/deepseek-engineer

agentic-ai ai deepseek-r1

Last synced: about 1 year ago
JSON representation

Save time and boost productivity with DeepSeek Engineer, a powerful coding assistant powered by DeepSeek's R1 capabilities. This project is designed to help you write code faster, debug smarter, and streamline your development workflow.

Awesome Lists containing this project

README

          

Screenshot 2025-01-25 at 17 11 12

# ๐Ÿš€ DeepSeek Engineer: Code Faster, Smarter, and More Efficiently! ๐Ÿš€

**DeepSeek Engineer** is your ultimate tool for writing code faster, taking on more projects, and looking like a coding wizard! ๐Ÿง™โ€โ™‚๏ธ Whether you're a seasoned developer or just starting out, this project is designed to supercharge your workflow and make coding a breeze. Let's dive in! ๐ŸŒŠ

---

## ๐Ÿ› ๏ธ Getting Started

### 1. **Install Dependencies**

First things first, let's get everything set up. Run the following command to install all the necessary dependencies:

```shellscript
npm install
```

### 2. **Set Up Environment Variables**

Next, create a `.env.local` file in the root directory and add your DeepSeek API key:

```plaintext
DEEPSEEK_API_KEY=your_api_key_here
```

### 3. **Start the Development Server**

Now, let's fire up the development server:

```shellscript
npm run dev
```

Once the server is running, you can access the application at `http://localhost:3000`.

---

## ๐Ÿ—๏ธ Code Architecture

The project is built with a modular architecture, ensuring a clear separation of concerns. Here's a breakdown of the core components:

### **Core Components**

- **`src/components/Chat.tsx`**: The main chat interface component.
- **`src/hooks/useChat.ts`**: Custom hook for managing chat functionality.
- **`src/utils/deepseek-client.ts`**: Handles integration with the DeepSeek API.
- **`src/utils/file-operations.ts`**: Manages file system operations.
- **`src/utils/conversation-manager.ts`**: Handles chat history and context management.

---

## โœจ Key Features

### **1. Chat Interface**

- **Real-time message streaming** ๐Ÿ’ฌ
- **Markdown support** ๐Ÿ“
- **Code syntax highlighting** ๐ŸŒˆ
- **Error handling and loading states** โš ๏ธ

### **2. File Operations**

- **File reading and writing** ๐Ÿ“‚
- **Directory traversal** ๐Ÿ—‚๏ธ
- **Diff generation for file modifications** ๐Ÿ”„
- **Safety checks and validations** โœ…

### **3. AI Integration**

- **Context-aware responses** ๐Ÿค–
- **Code analysis capabilities** ๐Ÿ”
- **Intelligent code modifications** ๐Ÿ› ๏ธ
- **Rate limiting and error handling** โณ

---

## ๐ŸŽฎ Usage

### **Basic Chat**

Simply type your questions or requests in the chat interface. The AI will respond with relevant code, explanations, or suggestions.

### **File Operations**

Use the following commands in the chat:

- **`/add `**: Add a file or directory to the conversation context.
- **`/ls `**: List contents of a directory.
- **`/cat `**: Display contents of a file.
- **`/exec `**: Execute a shell command (use with caution).

### **Code Modifications**

When requesting code changes, the AI will:

1. Analyze the existing code.
2. Generate appropriate modifications.
3. Show a diff preview of changes.
4. Apply the changes upon confirmation.

---

## ๐Ÿš€ Development

### **Building for Production**

```shellscript
npm run build
npm start
```

### **Running Tests**

```shellscript
npm run test
```

### **Linting**

```shellscript
npm run lint
```

---

## ๐Ÿ”ฎ Future Improvements

### **1. Enhanced IDE Integration**

- **VSCode extension** ๐Ÿ–ฅ๏ธ
- **Direct file editing capabilities** โœ๏ธ
- **Syntax-aware code modifications** ๐Ÿง 

### **2. Advanced Features**

- **Multi-file context understanding** ๐Ÿ“š
- **Project-wide refactoring** ๐Ÿ”ง
- **Test generation** ๐Ÿงช
- **Documentation generation** ๐Ÿ“„

### **3. User Experience**

- **Custom themes** ๐ŸŽจ
- **Keyboard shortcuts** โŒจ๏ธ
- **Command history** โช
- **Context persistence** ๐Ÿ’พ

### **4. Security**

- **Role-based access control** ๐Ÿ”
- **Secure file operations** ๐Ÿ›ก๏ธ
- **API key rotation** ๐Ÿ”„

### **5. Performance**

- **Response caching** โšก
- **Optimized file operations** ๐Ÿš€
- **Reduced API calls** ๐Ÿ“‰

---

## ๐Ÿค Contributing

We welcome contributions from the community! Whether you're fixing a bug, adding a feature, or just want to brainstorm ideas, we'd love to have you on board. Please feel free to submit a Pull Request or reach out to us. We believe there are smarter people out there, and we're eager to learn from you! ๐ŸŒŸ

---

## ๐Ÿ“œ License

This project is licensed under the MIT License. For more details, see the [LICENSE](LICENSE) file.

---

## ๐Ÿ™ Acknowledgments

- **Built with [Next.js](https://nextjs.org/)** โš›๏ธ
- **Powered by [DeepSeek API](https://deepseek.com)** ๐Ÿค–
- **UI components from [shadcn/ui](https://ui.shadcn.com/)** ๐ŸŽจ

---

## ๐Ÿ†˜ Support

For support, please open an issue in the GitHub repository or contact the maintainers.

---

## ๐Ÿšจ Important Note on File Access

### **Local Development vs. Deployed Environment**

1. **Local Development**:
- When running the application locally on your machine, it can access local files.
- Commands like `/add`, `/ls`, and `/cat` will work as expected, allowing you to interact with files on your local machine.

2. **Deployed on Vercel**:
- The deployed application **cannot** access files on your local machine.
- File operations will not work in the deployed environment as it lacks access to your local file system.

### **Intended Use**

- **Local Development**: The file access features are primarily for development and testing on your local machine.
- **Deployed Environment**: When deployed, the application should be adapted to work with cloud storage solutions or other methods of file handling that don't rely on local file access.

### **Adapting for Deployment**

To make the application work similarly when deployed, consider the following steps:

1. **Implement a file upload feature** to send local files to the server.
2. **Use cloud storage** (like AWS S3 or Google Cloud Storage) to store and access files.
3. **Modify the file operation commands** to work with the cloud storage instead of the local file system.

### **Current Limitations**

The current implementation doesn't distinguish between local and deployed environments, which is why you might experience issues when trying to access local files through the deployed application.

---

Made with โค๏ธ and a touch of laziness by **Yllvar**. ๐Ÿ˜„

---

Happy coding! ๐ŸŽ‰