Neural Optimization Virtual Assistant for Assembly
"Cursor for Assembly" - An AI-powered IDE for low-level programming
NOVA is an AI-powered Assembly language IDE built on Eclipse Theia, specifically designed for:
- π§ Embedded Systems Developers
- π Firmware Engineers
- π₯οΈ OS Developers
- π Security Researchers
| Feature | Description |
|---|---|
| Multi-Architecture Support | x86/x64, ARM/AArch64, RISC-V |
| Assembler Integration | NASM, GAS, MASM, FASM |
| AI-Powered Assistance | Code explanation, optimization, bug detection |
| Visual Debugging | Register viewer, memory visualizer, stack frames |
| Language Server | Hover info, auto-complete, go-to-definition |
NOVA/
βββ browser-app/ # Web-based IDE application
βββ electron-app/ # Desktop IDE application
βββ packages/
β βββ nova-core/ # Core UI and services
β βββ nova-assembly-lsp/ # Assembly language server
β βββ nova-debug/ # GDB debug adapter
β βββ nova-ai/ # AI assistant integration
βββ configs/ # Build configurations
βββ docs/ # Documentation
| Layer | Technology |
|---|---|
| Framework | Eclipse Theia 1.55.0 |
| Editor | Monaco |
| Language | TypeScript |
| Runtime | Node.js 20+ |
| AI | Claude 3.5 (via Anthropic SDK) |
| LSP | asm-lsp (Rust) |
| Debug | GDB via Debug Adapter Protocol |
- Node.js 20.0.0 or higher
- npm 10.0.0 or higher
- Git
Optional (for full functionality):
- NASM - Intel syntax assembler
- GCC/GAS - GNU Assembler
- GDB - Debugger
- asm-lsp - Assembly Language Server
# Clone the repository
git clone https://github.com/nova-assembly-ide/nova.git
cd NOVA
# Install dependencies
npm install
# Build all packages
npm run buildnpm run start:browserOpen http://localhost:3000 in your browser.
npm run start:electronpackages/
βββ nova-core/ # Core extension
β βββ src/browser/ # Frontend components
β βββ package.json
βββ nova-assembly-lsp/ # Language server client
β βββ src/browser/ # Frontend LSP client
β βββ src/node/ # Backend LSP server
β βββ package.json
βββ nova-debug/ # Debug adapter
β βββ src/browser/ # Debug UI
β βββ src/node/ # GDB adapter
β βββ package.json
βββ nova-ai/ # AI integration
βββ src/browser/ # Chat UI
βββ src/node/ # AI service
βββ package.json
| Command | Description |
|---|---|
npm install |
Install all dependencies |
npm run build |
Build all packages |
npm run watch |
Build and watch for changes |
npm run start:browser |
Start browser IDE |
npm run start:electron |
Start desktop IDE |
npm run lint |
Run ESLint |
npm run lint:fix |
Fix linting issues |
npm run clean |
Clean build artifacts |
-
Create a new directory in
packages/:mkdir -p packages/nova-myext/src/browser
-
Add
package.jsonwiththeia-extensionkeyword:{ "name": "@nova/nova-myext", "keywords": ["theia-extension"], "theiaExtensions": [{ "frontend": "lib/browser/myext-frontend-module" }] } -
Create the frontend module:
import { ContainerModule } from "@theia/core/shared/inversify"; export default new ContainerModule((bind) => { // Register your services here });
-
Add the dependency to
browser-app/package.json:"@nova/nova-myext": "*"
Create a .env file in the root directory:
# AI Configuration
ANTHROPIC_API_KEY=your-api-key
AI_MODEL=claude-3-sonnet-20240229
# Debug Configuration
GDB_PATH=/usr/bin/gdb
NASM_PATH=/usr/bin/nasm
# LSP Configuration
ASM_LSP_PATH=/usr/local/bin/asm-lsp| Extension | Language |
|---|---|
.asm, .s, .S |
Assembly (auto-detect) |
.nasm |
NASM syntax |
.gas |
GAS/AT&T syntax |
.inc |
Assembly include file |
- Project structure
- Theia integration
- Basic syntax highlighting
- Build system (NASM/GAS)
- GDB integration
- Register viewer
- Memory visualizer
- Stack view
- MCP server
- Chat interface
- Code explanation
- Optimization suggestions
- ARM support
- RISC-V support
- Architecture switching
- UI/UX refinement
- Performance optimization
- Distribution packages
Contributions are welcome! Please read our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Eclipse Theia - The IDE framework
- asm-lsp - Assembly language server
- Monaco Editor - Code editor
- Anthropic Claude - AI assistance
Built with β€οΈ for low-level programmers
