2026-07-04 15:40:54 -03:00

Decompile.AI — Frontend

A web-based reverse engineering platform. Upload binaries, run static analysis engines (IDA, Ghidra), explore disassembly with an IDE-style interface, and interact with an AI assistant that suggests code mutations.

Tech Stack

Layer Technology
Framework React 19 + TypeScript 6
Bundler Vite 8
Routing React Router 7 (client-side, lazy-loaded routes)
Styling Tailwind CSS 4 + shadcn/ui (Radix UI primitives)
Server state TanStack React Query 5
HTTP client Axios
API codegen Orval (from OpenAPI spec)
Chat streaming SSE via fetch + ReadableStream
Markdown react-markdown + remark-gfm + remark-breaks
Code highlighting react-syntax-highlighter
Graph layout @dagrejs/dagre (CFG visualization)
Fonts Inter (sans) + JetBrains Mono (monospace)

Project Structure

src/
├── api/
│   ├── api.ts                  # Axios instance
│   └── generated/              # Orval auto-generated hooks & types
├── components/
│   ├── layout/                 # AppLayout, Header
│   └── ui/                     # shadcn/ui components
├── features/
│   ├── binary/                 # Analysis page: code viewer, CFG, AI chat, mutations
│   ├── home/                   # Workspace list
│   ├── jobs/                   # Job queue
│   ├── libraries/              # Library symbol database
│   ├── project/                # Binary list + upload
│   └── workspace/              # Project list
├── pages/                      # Route-level page components + Router
├── providers/                  # React Query + Tooltip + Toaster
├── lib/utils.ts                # cn() class helper
└── utils/                      # Formatting utilities

Getting Started

Prerequisites

Setup

# Install dependencies
npm install

# Copy and configure environment
cp .env.example .env.local
# Edit VITE_API_BASE_URL if your backend runs on a different host/port

Environment Variables

Variable Default Description
VITE_API_BASE_URL http://localhost:8080 Backend API base URL

Development

npm run dev       # Start Vite dev server with HMR

The app will be available at http://localhost:5173.

Production Build

npm run build     # Type-check + production bundle
npm run preview   # Preview the production build locally

Lint & Format

npm run lint       # ESLint check
npm run lint:fix   # ESLint auto-fix
npm run format     # Prettier format

API Client Generation

The API client in src/api/generated/ is auto-generated by Orval from the backend's OpenAPI spec.

npx orval          # Regenerate API hooks and types

The spec endpoint is configured in orval.config.ts (default: http://localhost:8080/v3/api-docs).

Docker

Build

docker build -t decompile-ai-frontend .

Uses a multi-stage build: Node.js builder (node:22-alpine) → Nginx runtime (nginx:alpine).

Run with Docker Compose

docker-compose up

The docker-compose.yml exposes the frontend on port 3000 and expects the backend at http://backend:8080. Nginx proxies /api/ requests to the backend.

Features

Workspace & Project Management

  • Create, edit, delete workspaces and projects
  • Upload binaries (executables, DLLs, etc.)
  • Manage companion dependencies for binaries

Binary Analysis (IDE-Style 3-Panel Layout)

  • Left panel — Function tree (filterable, segmentable), strings, imports, global variables, structures, enums, cross-references
  • Center panel — Assembly view with syntax highlighting, control-flow graph visualization (dagre), pseudocode (decompiled C)
  • Right panel — AI chat assistant with SSE streaming, mutation suggestion cards (rename, signature, comments, flags)

Analysis Engines

  • Trigger analysis via IDA or Ghidra engines
  • Track analysis progress on the Jobs page

AI Chat

  • Multi-session chat with streaming responses (SSE)
  • Markdown rendering with code syntax highlighting
  • AI-suggested mutations: approve or reject renames, signatures, comments, and flags for functions, global variables, labels, and structures

Jobs Queue

  • View and filter all jobs (status, type)
  • Statistics dashboard (running, queued, completed, failed)
  • Cancel running jobs

Library Symbols

  • Upload library symbol dumps (Turbo Dump format)
  • Browse library symbols (paginated)
  • Bulk resolution of imports against libraries

Pages

Route Page Description
/ Home Workspace list
/workspace/:id Workspace Projects within a workspace
/project/:id Project Binaries within a project
/binary/:id Binary Main analysis view (3-panel IDE)
/jobs Jobs Job queue and stats
/libraries Libraries Library symbol database

Theme

Dark-only IDE theme using OKLCH color space with teal accent. Custom CSS properties for code syntax highlighting (keywords, strings, comments, functions, addresses).

Description
No description provided
Readme 1.4 MiB
Languages
TypeScript 98.5%
CSS 1.1%
JavaScript 0.2%
HTML 0.1%