Search by

janalis / porta

phcorp

A terminal IDE for PHP projects, built on symfony/tui with LSP support, syntax highlighting and autocompletion

v0.1.3 2026-11-03 03:37 UTC

README

Porta

Porta

A terminal IDE for PHP.
LSP · debugger · git · live collaboration · agents · plugins

CI Docs Latest release Packagist MIT license

Documentation · Getting started · Keybindings · Plugins · Writing a plugin

Porta is an IDE that runs in your terminal, written in PHP for PHP projects, on the symfony/tui component. The editor, the language servers, the debugger and every subprocess share one non-blocking event loop, so typing never waits on a server.

  • Code intelligence from any LSP server — completion with auto-imports, diagnostics, go to definition, references, rename, code actions, inlay hints — with PHPantom, Phpactor and the Symfony language server set up for you, and PHPStan, Psalm, Mago, PHP CS Fixer and custos beside them.
  • An editor with multiple carets, structural selection, live templates, folding, soft wrap, and a live preview for Markdown, SVG and diagrams.
  • Git in a view after GitHub Desktop: staging by line, history, worktrees, a three-way merge view, and Porta as git's difftool and mergetool. Pull and merge request threads in the editor.
  • A debugger (DAP: Xdebug and more), an integrated terminal and run configurations.
  • Work together: share a project live with others (Assist), or open one on a server over SSH or FTP.
  • Agents: an MCP server inside the IDE lets Claude Code and other agents read your buffers, propose edits you accept or reject, and run your tests.
  • Plugins in PHP, with a public API; the features above are plugins too.

The UI speaks English, French, German, Spanish, Italian, Japanese and Hebrew (mirrored right-to-left).

Install

Porta needs PHP ≥ 8.5.

brew install janalis/tap/porta            # macOS / Linux
composer global require janalis/porta     # with minimum-stability dev, see below

Or download porta.phar from the releases page; porta --self-update keeps it current. See Getting started for Composer's stability settings, a language server, and building from source.

Quick start

porta                       # open the project in the current directory
porta src/Kernel.php:42     # open a file at a line
porta --diff a.php b.php    # compare two files

Press F1 inside the IDE for the documentation, rendered in place.

Plugins

Every bundled plugin is also its own package, janalis/porta-<name>, from a read-only split of plugins/. Install yours from Settings → Plugins by Packagist name, git URL or local path; see Writing a plugin.

Contributing

Bug reports and pull requests are welcome — against this repository, never a plugin's split. Read the contributor guide first: composer verify (or make verify) is the definition of done, and it holds every change to 100% line coverage.

make install        # composer install + the docs site's packages
make check          # every quick gate
make verify         # the quick gates + 100% coverage of src/ and plugins
make docs-dev       # the documentation site, live

License

MIT.