Agentic Coding Tools - AI-Powered Development Assistant
A powerful desktop application that combines AI agents with an intuitive interface for enhanced coding workflows
Features β’ Installation β’ Usage β’ Architecture β’ Contributing
- Multi-Provider Support: Connect to enowX Labs, OpenAI, Anthropic, Google, or custom providers
- Conversation Memory: Smart context management with sliding window (up to 20 message pairs)
- Agent Execution Timeline: Visual representation of AI thinking process, tool usage, and results
- Markdown Rendering: Full GitHub-flavored markdown with syntax highlighting
- Code Block Actions: Copy, execute, or preview code directly from chat
- Collaborative Whiteboard: Full-featured drawing canvas with shapes, arrows, text, and freehand tools
- AI-Generated Diagrams: Describe what you want to draw, AI generates native Excalidraw elements
- Context-Aware Editing: AI understands existing canvas elements for precise modifications
- Auto-Save: Drawings persist per project with 1-second auto-save
- Theme Sync: Dark/light mode automatically syncs with app theme
- Multiple Specialized Agents: Orchestrator, Planner, Coder (FE/BE), Tester, Reviewer, Security, and more
- Tool Execution: File operations, shell commands, web scraping, and custom tools
- Permission System: User approval required for sensitive operations
- Streaming Responses: Real-time token streaming for immediate feedback
- Multi-Project Support: Switch between projects seamlessly
- Session History: Persistent chat sessions per project
- SQLite Backend: Fast, reliable local storage for all data
- Warm Dark Mode: Claude-inspired color palette with terracotta accents
- Responsive Layout: Three-panel layout with collapsible sidebars
- Smooth Animations: Polished transitions and micro-interactions
- Accessibility: Keyboard shortcuts and screen reader support
Powerful AI-powered conversations with enowX Flux integration and warm Claude-inspired dark theme
Clean and modern light theme for comfortable daytime coding
Collaborative whiteboard with AI diagram generation
Manage multiple AI providers and models with enable/disable toggles
- Node.js 18+ or Bun 1.0+
- Rust 1.75+ (for Tauri)
- Git
# Clone the repository
git clone https://github.com/mhmmadazis/enowX-Coder.git
cd enowX-Coder
# Install dependencies
npm install
# or
bun install
# Run in development mode
npm run tauri dev
# or
bun run tauri dev# Build the application
npm run tauri build
# or
bun run tauri buildThe compiled application will be available in src-tauri/target/release/bundle/.
-
Launch the Application
- Run
npm run tauri devor open the built executable
- Run
-
Configure AI Provider
- Click the settings icon (βοΈ) in the top-right corner
- Navigate to "Providers" tab
- Add your API key for enowX Labs, OpenAI, Anthropic, or custom provider
- Enable the provider and select a model
-
Create a Project
- Click "New Project" in the left sidebar
- Enter project name and optional path
- Start chatting with AI agents
- Ask Questions: Type naturally, AI understands context
- Request Code: "Create a React component for user authentication"
- Execute Tools: AI can read/write files, run shell commands (with permission)
- Generate Diagrams: Switch to Canvas tab and describe what to draw
- Switch to Canvas: Click "Canvas" in the header segmented control
- Draw Manually: Use Excalidraw toolbar for shapes, arrows, text
- AI Generation: Type prompt in bottom bar (e.g., "Draw a system architecture diagram")
- Edit with AI: "Change the color of Database to blue" - AI modifies only that element
Ctrl/Cmd + N- New chat sessionCtrl/Cmd + ,- Open settingsCtrl/Cmd + B- Toggle left sidebarCtrl/Cmd + Shift + B- Toggle right sidebarEsc- Close dialogs/modals
Frontend
- React 19 - UI framework with concurrent features
- TypeScript - Type-safe development
- Tailwind CSS 4 - Utility-first styling
- Zustand - Lightweight state management
- Excalidraw - Canvas whiteboard library
Backend
- Rust - High-performance, memory-safe backend
- Tauri 2 - Cross-platform desktop framework
- SQLite - Embedded database via rusqlite
- Tokio - Async runtime for concurrent operations
enowX-Coder/
βββ src/ # React frontend
β βββ components/ # UI components
β β βββ chat/ # Chat interface components
β β βββ canvas/ # Excalidraw canvas
β β βββ layout/ # App shell and layout
β β βββ settings/ # Settings panels
β β βββ ui/ # Reusable UI primitives
β βββ stores/ # Zustand state stores
β βββ types/ # TypeScript type definitions
β βββ lib/ # Utility functions
β
βββ src-tauri/ # Rust backend
β βββ src/
β β βββ agents/ # AI agent implementations
β β βββ commands/ # Tauri commands (IPC)
β β βββ services/ # Business logic layer
β β βββ models/ # Data models
β β βββ tools/ # Agent tool executors
β β βββ state.rs # Application state
β βββ migrations/ # SQLite schema migrations
β βββ Cargo.toml # Rust dependencies
β
βββ public/ # Static assets
βββ screenshots/ # Application screenshots
βββ CHANGELOG.md # Version history
Agent System (src-tauri/src/agents/)
runner.rs- Main agent execution loop with ReAct patternprompts/- Specialized agent prompts (Orchestrator, Coder, Tester, etc.)
Services (src-tauri/src/services/)
chat_service.rs- Message handling, streaming, conversation memoryprovider_service.rs- AI provider management and API callsdrawing_service.rs- Canvas persistence and AI diagram generationagent_service.rs- Agent configuration and execution
State Management
- Frontend: Zustand stores for UI state, chat, projects, settings
- Backend: Tauri managed state with Arc<Mutex<>> for thread-safe access
Create a .env file in the project root (optional):
# Default AI Provider
DEFAULT_PROVIDER=enowx-labs
# API Keys (can also be set in UI)
ENOWX_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_hereAdd custom AI providers via Settings UI:
- Click "+ Add Provider"
- Enter provider name, base URL, and API key
- Add models manually or fetch from API
- Enable provider and select model
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Follow Conventional Commits:
feat:- New featurefix:- Bug fixrefactor:- Code refactoringdocs:- Documentation changeschore:- Maintenance taskstest:- Test additions/changes
- Run
cargo clippybefore committing Rust code - Run
npm run buildto check TypeScript compilation - Test on multiple platforms (Windows, macOS, Linux)
- Update CHANGELOG.md for notable changes
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Tauri Team - For the amazing cross-platform framework
- Excalidraw - For the collaborative whiteboard library
- Anthropic - For Claude AI inspiration and design patterns
- enowX Labs - For AI infrastructure and model access
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@enowx.dev
Built with β€οΈ by the enowX Community
β Star this repo if you find it useful!



