Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Web Terminal Laravel Package

mwguerra/web-terminal

View on GitHub
Deep Wiki
Context7
v2.2.0

Added

  • Laravel 13 support (illuminate/contracts ^13.0, illuminate/support ^13.0, symfony/process ^8.0)
v2.1.2

Added

  • allowInteractiveMode() flag — enables interactive execution (PTY/tmux) for whitelisted commands, supporting artisan tinker, reverb:start, queue:work, and other interactive/long-running Laravel commands
  • TerminalPermission enum — declarative permission configuration via allow([TerminalPermission::InteractiveMode, TerminalPermission::ShellOperators])
  • allow(array) method on both Schema Component and TerminalBuilder for enum-based permission control
  • TerminalBuilder now has full parity with Schema Component: allowAllCommands(), allowPipes(), allowRedirection(), allowChaining(), allowExpansion(), allowAllShellOperators(), allowInteractiveMode(), environment(), loginShell(), shell(), startConnected(), title(), windowControls(), height(), log(), scripts()
  • FileSessionManager — file-based IPC session manager for cross-worker interactive session persistence without tmux dependency. Uses background PHP worker per session with PTY, communicates via filesystem files, stores metadata in Laravel Cache (respects CACHE_STORE — file, Redis, database, memcached)
  • Session manager auto-detection priority chain: Tmux > File > Process (FileSessionManager now default fallback when PTY is supported)

Changed

  • Default Filament Terminal page now enables interactive mode and shell operators for artisan/composer commands

Fixed

  • Multi-word wildcard patterns in CommandValidator now correctly match commands like php artisan * against php artisan tinker
  • Interactive sessions (REPLs, long-running commands) now persist across PHP-FPM worker processes via FileSessionManager
  • REPL output rendering: prompts and user input now display on the same line (> 1 + 1), input lines render in command color (green)
  • ANSI escape sequence stripping for interactive output (private mode, OSC, character set, keypad sequences)
  • PTY input echo deduplication — typed commands no longer appear twice in terminal output
  • Xdebug/JIT startup warnings suppressed in interactive sessions via XDEBUG_MODE=off in child processes
  • Stderr now properly displayed for failed commands in interactive mode
v2.1.1

Fixed

  • TUI application detection — full-screen apps (vim, htop, less, nano, etc.) are now detected via alternate screen buffer and Device Status Report escape sequences, blocked with a clear error message and non-interactive alternative suggestions
  • TuiDetector utility class for identifying TUI escape sequences and providing command suggestions
v2.1.0

Added

  • Copy All button in header bar — copies entire terminal output to clipboard
  • Per-command-block copy button — hover over a command block to reveal copy icon
  • Multi-line paste with confirmation — pasting multiple lines shows a modal to review and execute commands sequentially (comment lines starting with # are filtered)
  • clearOutput() method to programmatically clear terminal output
  • getPlainTextOutput() method to retrieve terminal output as plain text
  • Shell operator controls with granular fluent methods to selectively allow blocked shell operators:
    • allowPipes() - Allow pipe operators (|) for piping output between commands
    • allowRedirection() - Allow redirection operators (>, <, >>, <<) for file I/O
    • allowChaining() - Allow chaining operators (;, &&, ||, &) for running multiple commands
    • allowExpansion() - Allow expansion operators ($, `, $(), ${}) for variable/command substitution
    • allowAllShellOperators() - Global toggle to allow all operator groups at once
  • Shell operator flags supported across all layers: Schema fluent API, Livewire component, and CommandSanitizer
  • allowChaining and allowExpansion params added to ValidCommand attribute for consistency
  • Documentation for shell operator controls with risk levels and usage examples

Fixed

  • Prevent multi-line paste during interactive mode or script execution
v2.0.0

Changed

  • Upgraded to v2.x targeting Filament 5, Laravel 12, Livewire 4
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
comsave/common
alecsammon/php-raml-parser
chrome-php/wrench
lendable/composer-license-checker
typhoon/reflection
mesilov/moneyphp-percentage
mike42/gfx-php
bookdown/themes
aura/view
aura/html
aura/cli
povils/phpmnd
nayjest/manipulator
omnipay/tests
psr-mock/http-message-implementation
psr-mock/http-factory-implementation
psr-mock/http-client-implementation
voku/email-check
voku/urlify
rtheunissen/guzzle-log-middleware