diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..84f41ce
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,104 @@
+# AGENTS.md
+
+Guidelines for coding agents working on the CompressO codebase.
+
+## Build/Lint/Test Commands
+
+```bash
+# Frontend
+pnpm vite:dev # Dev server on port 3001
+pnpm vite:build # Build frontend
+pnpm tsc:check # Type check TypeScript
+
+# Tauri App
+pnpm tauri:dev # Run Tauri dev mode
+pnpm tauri:build # Build production app
+
+# Code Quality
+biome check . # Lint and format check
+biome check --write . # Auto-fix issues
+
+# Rust Backend
+cd src-tauri && cargo build # Build Rust code
+cd src-tauri && cargo clippy # Rust linter
+```
+
+Pre-commit: Husky runs `lint-staged` with Biome auto-format.
+
+## Code Style Guidelines
+
+### TypeScript/React
+
+**Imports**: Node modules → @/* paths → relative. Biome auto-organizes on save. Use `@/*` for src/ alias.
+
+**Formatting** (Biome): 2 spaces, 80 char width, single quotes (strings), double quotes (JSX), trailing commas, no console.log unless `// biome-ignore`.
+
+**Components**: Directory structure with `index.tsx`, forwardRef, displayName. Destructure props and spread rest.
+
+```typescript
+const Button = React.forwardRef(
+ (props: ButtonProps, ref) => {
+ const { color, variant, ...rest } = props
+ return
+ },
+)
+Button.displayName = 'Button'
+```
+
+**Styling**: Tailwind CSS with `cn()` utility for className merging. Dark mode with `dark:` prefix.
+
+**State Management**: Valtio - `proxy()` for state, `useSnapshot()` for reading, direct mutation for writes.
+
+**Routing**: TanStack Router with `createFileRoute()`, export `Route` constant from `src/routes/`.
+
+**Types**: Define in `src/types/`. Use `export type` for types, `export const` with `as const` for constants.
+
+**Error Handling**: try/catch for async, toast from sonner (position="bottom-center", richColors, 2500ms).
+
+**Hooks**: Start with "use", export types, define in `src/hooks/`.
+
+**Tauri**: Commands in `src/tauri/commands/`, use `core.invoke()`. snake_case in Rust, camelCase in TypeScript.
+
+### Rust Backend
+
+**Naming**: snake_case for functions/variables, PascalCase for types, SCREAMING_SNAKE_CASE for constants, snake_case files.
+
+**Error Handling**: Return `Result`, use String for errors.
+
+**Structure**: `src-tauri/src/main.rs` (entry), `src-tauri/src/lib/` (modules: domain.rs, ffmpeg.rs, fs.rs, tauri_commands/, sys/).
+
+## Project Configuration
+
+**Biome**: Config in `biome.jsonc`, linter with custom rules, 80 char line width, auto-organize imports.
+
+**TypeScript**: Strict mode, `@/*` → `./src/*` alias, ES5 target, ESNext module, JSX preserve.
+
+**Rust**: Edition 2021, tauri 2.0, tokio, serde.
+
+**Git**: Pre-commit runs lint-staged, Husky for hooks, ignore node_modules, dist.
+
+## File Organization
+
+```
+src/
+├── components/ # UI components (Button, Icon, etc.)
+├── constants/ # Constants and config
+├── hooks/ # Custom React hooks
+├── providers/ # Context providers
+├── routes/ # TanStack Router routes
+├── tauri/ # Tauri command wrappers
+├── types/ # TypeScript types
+└── utils/ # Utilities (cn, string, fs)
+
+src-tauri/src/
+├── lib/ # Library modules (domain, ffmpeg, fs, tauri_commands)
+└── main.rs # Entry point
+```
+
+## Notes
+
+- No test framework configured (no test scripts in package.json)
+- Offline app (no network requests)
+- FFmpeg sidecars bundled for cross-platform compression
+- Use `pnpm` as package manager
+- Follow existing patterns when adding features
diff --git a/next-env.d.ts b/next-env.d.ts
deleted file mode 100644
index 4f11a03..0000000
--- a/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.