PHPackages                             filaforge/filament-shell-terminal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. filaforge/filament-shell-terminal

ActiveLibrary[CLI &amp; Console](/categories/cli)

filaforge/filament-shell-terminal
=================================

A powerful shell terminal plugin for FilamentPHP with local assets and enhanced security

v1.0.0(8mo ago)0261[1 issues](https://github.com/filaforge/filament-shell-terminal/issues)[1 PRs](https://github.com/filaforge/filament-shell-terminal/pulls)MITPHPPHP ^8.1

Since Aug 19Pushed 8mo agoCompare

[ Source](https://github.com/filaforge/filament-shell-terminal)[ Packagist](https://packagist.org/packages/filaforge/filament-shell-terminal)[ RSS](/packages/filaforge-filament-shell-terminal/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (5)Used By (0)

Filaforge Shell Terminal
========================

[](#filaforge-shell-terminal)

A powerful Filament plugin that provides a secure web-based terminal interface directly in your admin panel.

Features
--------

[](#features)

- **Web-based Terminal**: Full terminal experience in your browser
- **Enhanced Security**: Comprehensive command filtering and rate limiting
- **Smart Input**: Tab completion, command history, and keyboard shortcuts
- **Modern UI**: Responsive design with dark/light mode support
- **Preset Commands**: Quick access to common Laravel and system commands
- **Command Logging**: Optional audit trail for security compliance
- **Session Management**: Persistent terminal sessions
- **Multi-user Support**: Separate terminal sessions for each user
- **Audit Logging**: Track all terminal activities for security

Installation
------------

[](#installation)

### 1. Install via Composer

[](#1-install-via-composer)

```
composer require filaforge/shell-terminal
```

### 2. Publish &amp; Migrate

[](#2-publish--migrate)

```
# Publish provider groups (config, views, migrations)
php artisan vendor:publish --provider="Filaforge\\ShellTerminal\\Providers\\ShellTerminalServiceProvider"

# Run migrations
php artisan migrate
```

### 3. Register Plugin

[](#3-register-plugin)

Add the plugin to your Filament panel provider:

```
use Filament\Panel;

public function panel(Panel $panel): Panel
{
    return $panel
        // ... other configuration
        ->plugin(\Filaforge\ShellTerminal\ShellTerminalPlugin::make());
}
```

Setup
-----

[](#setup)

### Prerequisites

[](#prerequisites)

Before using this plugin, ensure your system meets these requirements:

- **PHP**: 8.1 or higher
- **Laravel**: 12.x
- **Filament**: 4.x (Panel Builder)
- **Node.js**: 16+ (for asset building)

### Configuration

[](#configuration)

The plugin will automatically:

- Publish configuration files to `config/shell-terminal.php`
- Publish view files to `resources/views/vendor/shell-terminal/`
- Publish migration files to `database/migrations/`
- Register necessary routes and middleware

### Terminal Configuration

[](#terminal-configuration)

Configure the shell terminal in the published config file:

```
// config/shell-terminal.php
return [
    'enabled' => env('SHELL_TERMINAL_ENABLED', true),
    'rate_limit' => env('SHELL_TERMINAL_RATE_LIMIT', 60),
    'command_timeout' => env('SHELL_TERMINAL_TIMEOUT', 300),
    'max_history' => env('SHELL_TERMINAL_MAX_HISTORY', 100),
    'log_commands' => env('SHELL_TERMINAL_LOG_COMMANDS', false),
    'require_confirmation' => env('SHELL_TERMINAL_REQUIRE_CONFIRMATION', true),
    'show_welcome_message' => env('SHELL_TERMINAL_SHOW_WELCOME', true),
    'enable_tab_completion' => env('SHELL_TERMINAL_TAB_COMPLETION', true),
    'enable_command_history' => env('SHELL_TERMINAL_HISTORY', true),
    'terminal_height' => env('SHELL_TERMINAL_HEIGHT', 60),
    'dark_mode' => env('SHELL_TERMINAL_DARK_MODE', true),
];
```

### Environment Variables

[](#environment-variables)

Add these to your `.env` file:

```
SHELL_TERMINAL_ENABLED=true
SHELL_TERMINAL_RATE_LIMIT=60
SHELL_TERMINAL_TIMEOUT=300
SHELL_TERMINAL_MAX_HISTORY=100
SHELL_TERMINAL_LOG_COMMANDS=false
SHELL_TERMINAL_REQUIRE_CONFIRMATION=true
SHELL_TERMINAL_SHOW_WELCOME=true
SHELL_TERMINAL_TAB_COMPLETION=true
SHELL_TERMINAL_HISTORY=true
SHELL_TERMINAL_HEIGHT=60
SHELL_TERMINAL_DARK_MODE=true
```

Usage
-----

[](#usage)

### Accessing the Shell Terminal

[](#accessing-the-shell-terminal)

1. Navigate to your Filament admin panel
2. Look for the "Shell Terminal" menu item
3. Open a new terminal session

### Basic Terminal Operations

[](#basic-terminal-operations)

1. **Command Execution**: Type commands and press Enter
2. **File Navigation**: Use `cd`, `ls`, `pwd` for file operations
3. **File Management**: Create, edit, and delete files
4. **Process Control**: Monitor and manage system processes
5. **System Information**: Get system status and information

### Preset Commands

[](#preset-commands)

The plugin includes categorized preset commands:

- **Laravel**: Artisan commands, migrations, testing
- **Composer**: Package management
- **Git**: Version control operations
- **System**: File operations, monitoring
- **Database**: Database management
- **Optimization**: Performance tuning
- **Maintenance**: System maintenance

### Advanced Features

[](#advanced-features)

- **Tab Completion**: Use Tab key for command and file completion
- **Command History**: Access previous commands with arrow keys
- **Session Persistence**: Terminal sessions persist across page refreshes
- **Multi-tab Support**: Open multiple terminal tabs
- **Custom Aliases**: Create and use command aliases

Troubleshooting
---------------

[](#troubleshooting)

### Common Issues

[](#common-issues)

- **Permission denied**: Ensure the user has appropriate shell access
- **Command not found**: Check if the command is in the allowed list
- **Session timeout**: Increase session timeout in configuration
- **Performance issues**: Check system resources and command complexity

### Debug Steps

[](#debug-steps)

1. Check the plugin configuration:

```
php artisan config:show shell-terminal
```

2. Verify routes are registered:

```
php artisan route:list | grep shell-terminal
```

3. Check user permissions:

```
# Verify the web server user has shell access
whoami
groups
```

4. Test basic shell functionality:

```
# Test if basic commands work
php artisan tinker
shell_exec('pwd');
```

5. Clear caches:

```
php artisan optimize:clear
```

6. Check logs for errors:

```
tail -f storage/logs/laravel.log
```

### Performance Optimization

[](#performance-optimization)

- **Command caching**: Cache frequently used command results
- **Session management**: Optimize terminal session handling
- **Resource monitoring**: Monitor system resources during terminal use
- **Command queuing**: Implement command queuing for heavy operations

Security Considerations
-----------------------

[](#security-considerations)

### Access Control

[](#access-control)

- **Role-based permissions**: Restrict terminal access to authorized users only
- **Command restrictions**: Whitelist allowed commands and block dangerous ones
- **User isolation**: Ensure users can only access their own terminal sessions
- **Audit logging**: Track all terminal activities and commands

### Security Features

[](#security-features)

- **Command Filtering**: Built-in protection against dangerous commands
- **Pattern Matching**: Blocks shell piping and other risky patterns
- **Directory Restrictions**: Limits command execution to safe directories
- **Rate Limiting**: Configurable commands per minute with abuse prevention

### Best Practices

[](#best-practices)

- Never expose the terminal to public users
- Regularly review and update command whitelists
- Monitor terminal usage and log suspicious activities
- Implement proper user authentication and authorization
- Use HTTPS for secure terminal access
- Regular security audits of terminal usage

Performance Optimization
------------------------

[](#performance-optimization-1)

### System Requirements

[](#system-requirements)

- **CPU**: Multi-core processor for better performance
- **Memory**: Sufficient RAM for terminal sessions
- **Storage**: Fast storage for command execution
- **Network**: Stable network for web terminal access

### Optimization Tips

[](#optimization-tips)

- Use command caching for repeated operations
- Implement session pooling for multiple users
- Monitor system resources during peak usage
- Optimize command execution timeouts

Uninstall
---------

[](#uninstall)

### 1. Remove Plugin Registration

[](#1-remove-plugin-registration)

Remove the plugin from your panel provider:

```
// remove ->plugin(\Filaforge\ShellTerminal\ShellTerminalPlugin::make())
```

### 2. Roll Back Migrations (Optional)

[](#2-roll-back-migrations-optional)

```
php artisan migrate:rollback
# or roll back specific published files if needed
```

### 3. Remove Published Assets (Optional)

[](#3-remove-published-assets-optional)

```
rm -f config/shell-terminal.php
rm -rf resources/views/vendor/shell-terminal
```

### 4. Remove Package and Clear Caches

[](#4-remove-package-and-clear-caches)

```
composer remove filaforge/shell-terminal
php artisan optimize:clear
```

### 5. Clean Up Environment Variables

[](#5-clean-up-environment-variables)

Remove these from your `.env` file:

```
SHELL_TERMINAL_ENABLED=true
SHELL_TERMINAL_RATE_LIMIT=60
SHELL_TERMINAL_TIMEOUT=300
SHELL_TERMINAL_MAX_HISTORY=100
SHELL_TERMINAL_LOG_COMMANDS=false
SHELL_TERMINAL_REQUIRE_CONFIRMATION=true
SHELL_TERMINAL_SHOW_WELCOME=true
SHELL_TERMINAL_TAB_COMPLETION=true
SHELL_TERMINAL_HISTORY=true
SHELL_TERMINAL_HEIGHT=60
SHELL_TERMINAL_DARK_MODE=true
```

### 6. Security Cleanup

[](#6-security-cleanup)

After uninstalling, consider:

- Reviewing system logs for any suspicious activities
- Updating firewall rules if terminal-specific rules were added
- Removing any custom shell configurations
- Updating user permissions and access controls

Support
-------

[](#support)

- **Documentation**: [GitHub Repository](https://github.com/filaforge/shell-terminal)
- **Issues**: [GitHub Issues](https://github.com/filaforge/shell-terminal/issues)
- **Discussions**: [GitHub Discussions](https://github.com/filaforge/shell-terminal/discussions)

Contributing
------------

[](#contributing)

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

License
-------

[](#license)

This plugin is open-sourced software licensed under the [MIT license](LICENSE).

---

**Made with ❤️ by the Filaforge Team**

###  Health Score

33

—

LowBetter than 74% of packages

Maintenance62

Regular maintenance activity

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

263d ago

Major Versions

0.1.2 → v1.0.02025-08-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7ccd0e302c517e0c6bc2b4ef05008e5beb1621bf5a64b17b82cdceb19566389?d=identicon)[filaforge](/maintainers/filaforge)

---

Top Contributors

[![blhk0532](https://avatars.githubusercontent.com/u/221689993?v=4)](https://github.com/blhk0532 "blhk0532 (5 commits)")

---

Tags

consoleterminallaravelshelladminfilamentpanel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/filaforge-filament-shell-terminal/health.svg)

```
[![Health](https://phpackages.com/badges/filaforge-filament-shell-terminal/health.svg)](https://phpackages.com/packages/filaforge-filament-shell-terminal)
```

###  Alternatives

[recca0120/terminal

run laravel artisan command in web application

878410.9k2](/packages/recca0120-terminal)[phpsa/filament-authentication

User &amp; Role (via Spatie Roles/Permissions) Manager Resource For Filament Admin

12663.6k](/packages/phpsa-filament-authentication)[mwguerra/web-terminal

A web-based terminal component for Filament/Laravel with command whitelisting and multiple connection types

251.1k](/packages/mwguerra-web-terminal)[craft-forge/filament-language-switcher

Zero-config language switcher for Filament admin panels. Automatically scans available translations, renders dropdown with country flags, persists selection via sessions.

1016.4k](/packages/craft-forge-filament-language-switcher)[phpsa/filament-dadjokes

With DadJokes every time you load your control panel you'll be greeted by an epic dad joke on the dashboard.

1714.1k](/packages/phpsa-filament-dadjokes)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
