Repository navigation
Anvil 0.3.0 (beta)
Anvil for Linux, in beta; WordPress, more PHP extensions, and a round of polish and speed across the app and the CLI. Still a beta.
Added
-
Linux (beta): the app and the CLI for x86_64 Linux with glibc 2.35 or later (Ubuntu 22.04+, Debian 12+, Fedora, Arch), as an AppImage that updates itself, a .deb, and the CLI alone. Apps answer at
http://<name>.localhost:8080;.testaddresses, ports 80/443 and HTTPS trust come in a later release. PHP, Node.js, Go, Rust, .NET, Python, MySQL, PostgreSQL, Redis, Mailpit, S3 storage, every app template, worktrees and Octane work; OPcache comes with PHP 8.5, and PHP extensions can't be added yet. MySQL and Redis are built in part from source the first time, so they need gcc and make. -
Linux: Settings finds your editor, terminal and git app (from PATH and Flatpak), and opens files at the line in them.
-
WordPress: existing sites are recognised, and New Application creates one on a MySQL service, with PHP's mysqli built when it's missing.
-
PHP extensions MongoDB and Memcached, and Imagick on a Mac with Homebrew's ImageMagick:
anvil php ext add mongodb. -
Check for Updates… in the Anvil menu opens a Software Update window with what's new; the menu bar menu offers a new version when there is one.
-
Settings › Features › Request log: on as before; off, the web server keeps no request logs and apps lose the Requests tab.
-
Services: "Write to 's .env…" writes a service's connection keys into an app's .env, after showing them.
-
A service in the sidebar has a right-click menu: Start or Stop, open in a database app, its data, its log and Remove Service….
-
anvil appslists the applications;anvil sitesstill works.
Changed
- Windows: Ctrl+1–9 open the app's tabs as they show, a hidden tab (Git, Dev, Mail) not counted.
- Anvil needs macOS 12 or later. MySQL (macOS 14), PostgreSQL (15), Mailpit (13) and Node.js 24 or later (13.5) say so before downloading on an older Mac.
- Settings › Plugins is now Settings › Features: they come with Anvil and only need turning on.
- Worktree settings say in plain sentences what a new worktree gets; Customize… edits files, env keys and commands as rows with plain choices.
- Every confirm is asked in the window, most in the row itself, never in a system dialog. Remove Service offers Remove, Keep Data or Remove and Delete Data.
- Unfinished setup is one titlebar button; it lists each step and says which one asks for your password.
- Add Folder of Applications… on a folder that is one project offers to add it as one application; an empty folder says it has none yet.
- New Application says a missing PHP or runtime in the form, with Install, before anything is made; after creating, Open in Browser opens the app.
- Changing an app's PHP version, type, start command, port, version or php.ini says beside the field what it builds or restarts, and what failed.
- Dev: amber while a server's port doesn't answer yet; a crash says its exit code; All processes is red while one has crashed, as in the sidebar.
- Adding a service says what it downloads and how much has come in. Worktrees say Creating… and Removing… where you asked.
- Processes works from the keyboard and says Restarting… or Stopping… in a row while it acts; the menu bar menu does the same.
- Processes › Agents: a failed action reads "couldn't start vite: "; actions from earlier days show their date.
- Settings › Features › Agents (MCP) shows the whole Claude Code command with its own Copy.
- Settings › PHP and the other language pages say a failed Install, Uninstall or Make default in its version's row.
- Mail tab: deleting one message asks first; after catching is switched it offers to restart the processes still sending the old way.
- The CLI explains every argument and flag with examples, says "application", prints what each setting command set, and gives one "No app named …" or "No service named …" error with what to run.
- Windows: shortcuts work with Ctrl, and the app says Ctrl and File Explorer instead of ⌘ and Finder.
- Menu bar menu: Quit reads Quit Anvil and Stop Everything with ⌥⌘Q; ⌘Q only closes the windows.
- Icons are one set of outline icons, and only a dot shows a process's state: names are no longer red, orange or green.
Fixed
- Stopping an app also ends the processes it started in the background, such as Next.js's telemetry flusher.
- The sidebar shows an app red when one of its processes or Docker Compose containers crashed, also while others run.
- Less CPU at start with many apps, while an app starts, and while Dev, Requests, Overview or Processes is open; Processes asks Docker every 15 s while no container runs.
- A closed window no longer reloads after every action, and Anvil frees the main window's memory after it has been closed for 10 minutes.
- Release notes in an update read as text, without markdown marks.
- A failed action is said where it was taken, not in a banner far from it; Logs and Requests say when a log can't be read instead of looking empty.
- In a narrow window every tab fits, Requests' filters wrap, bubbles and lists open inside the window, and caught mail rows are cut with "…".
- Settings › Shortcuts lists the keys Anvil has: ← → fold an app's worktrees, ⌘Q closes the windows, ⌥⌘Q quits.
anvil unlinkandanvil forgetsay what they did and fail for a name Anvil doesn't serve; empty lists say what to run.- The CLI's warnings carry no color codes when stderr isn't a terminal.
- Grey text reads at 4.5:1 or better in both themes; screen readers hear process states and the notes beside fields; Tab and Esc work in every bubble and sheet.
- Settings › Storage: no measuring and empty at once; safe to delete is grey, not orange; a language's row points to its own page.