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! ๐
First things first, let's get everything set up. Run the following command to install all the necessary dependencies:
npm install
Next, create a .env.local file in the root directory and add your DeepSeek API key:
DEEPSEEK_API_KEY=your_api_key_here
Now, let's fire up the development server:
npm run dev
Once the server is running, you can access the application at http://localhost:3000.
The project is built with a modular architecture, ensuring a clear separation of concerns. Here's a breakdown of the 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.
- Real-time message streaming ๐ฌ
- Markdown support ๐
- Code syntax highlighting ๐
- Error handling and loading states
โ ๏ธ
- File reading and writing ๐
- Directory traversal ๐๏ธ
- Diff generation for file modifications ๐
- Safety checks and validations โ
- Context-aware responses ๐ค
- Code analysis capabilities ๐
- Intelligent code modifications ๐ ๏ธ
- Rate limiting and error handling โณ
Simply type your questions or requests in the chat interface. The AI will respond with relevant code, explanations, or suggestions.
Use the following commands in the chat:
/add <path>: Add a file or directory to the conversation context./ls <path>: List contents of a directory./cat <path>: Display contents of a file./exec <command>: Execute a shell command (use with caution).
When requesting code changes, the AI will:
- Analyze the existing code.
- Generate appropriate modifications.
- Show a diff preview of changes.
- Apply the changes upon confirmation.
npm run build
npm start
npm run test
npm run lint
- VSCode extension ๐ฅ๏ธ
- Direct file editing capabilities โ๏ธ
- Syntax-aware code modifications ๐ง
- Multi-file context understanding ๐
- Project-wide refactoring ๐ง
- Test generation ๐งช
- Documentation generation ๐
- Custom themes ๐จ
- Keyboard shortcuts โจ๏ธ
- Command history โช
- Context persistence ๐พ
- Role-based access control ๐
- Secure file operations ๐ก๏ธ
- API key rotation ๐
- Response caching โก
- Optimized file operations ๐
- Reduced API calls ๐
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! ๐
This project is licensed under the MIT License. For more details, see the LICENSE file.
- Built with Next.js โ๏ธ
- Powered by DeepSeek API ๐ค
- UI components from shadcn/ui ๐จ
For support, please open an issue in the GitHub repository or contact the maintainers.
-
Local Development:
- When running the application locally on your machine, it can access local files.
- Commands like
/add,/ls, and/catwill work as expected, allowing you to interact with files on your local machine.
-
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.
- 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.
To make the application work similarly when deployed, consider the following steps:
- Implement a file upload feature to send local files to the server.
- Use cloud storage (like AWS S3 or Google Cloud Storage) to store and access files.
- Modify the file operation commands to work with the cloud storage instead of the local file system.
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! ๐