Shell App
FAQ
Frequently Asked Questions
General
What is Shell App?
Shell App is an integrated terminal application within FlowState that provides a full-featured terminal experience. Built with xterm.js, it offers session persistence, context-aware sessions linked to your projects and tasks, and seamless integration with the FlowState ecosystem.
Who should use this app?
Shell App is designed for:
| User Type | Use Cases |
|---|---|
| Developers | Run build commands, view logs, execute tests, start dev servers |
| DevOps Engineers | Server administration, deployment automation, infrastructure tasks |
| System Administrators | System monitoring, configuration management |
| Power Users | Any command-line operations within FlowState |
What makes Shell App different from a regular terminal?
Shell App provides unique benefits:
- Session Persistence - Sessions survive page refreshes and reconnections
- Context Linking - Associate terminals with projects, milestones, and tasks
- Cross-Device Access - Sessions sync via RxDB replication
- Integrated Workflow - Access terminal alongside FlowState apps via bottom panel
- Unified Interface - No need to switch between apps and external terminals
Sessions
How many sessions can I have open at once?
There is no hard limit on sessions. However, for optimal performance:
- Active terminals consume memory on both client and server
- Recommend keeping 5-10 active sessions maximum
- Close sessions you're not actively using
- Archived sessions don't consume active resources
What happens to my session when I close the browser?
Your session persists! When you return:
- The session metadata is stored in RxDB
- The shell process may continue running on the server (depending on configuration)
- You can reconnect and view scrollback history
- If the process exited, you'll see the exit status and can create a new session
Can I share sessions with team members?
Currently, sessions are user-specific and scoped to your account. However:
- Sessions are associated with shared entities (projects, tasks)
- Command output can be logged for team visibility (feature dependent on configuration)
- Future versions may support session sharing
How do I rename a session?
- Right-click on the session in the sidebar
- Select Rename
- Enter the new name
- Press Enter or click Save
Alternatively, use the rename action in the session menu.
What's the difference between "Close" and "Delete"?
| Action | What Happens |
|---|---|
| Close | Terminates the shell process but keeps session history; you can see the exit status |
| Delete | Completely removes the session from both server and database; cannot be recovered |
Terminal Features
What keyboard shortcuts are available?
| Action | Windows/Linux | macOS |
|---|---|---|
| New Terminal | Ctrl+Shift+` | Cmd+Shift+` |
| Clear Terminal | Ctrl+K | Cmd+K |
| Focus Terminal | Ctrl+` | Cmd+` |
Standard terminal shortcuts also work within the terminal (Ctrl+C, Ctrl+D, etc.).
Does Shell App support colors and formatting?
Yes! Shell App uses xterm.js which provides full ANSI escape code support:
- 16 colors, 256 colors, and true color (24-bit)
- Bold, italic, underline, strikethrough
- Cursor positioning and control sequences
- Most terminal applications display correctly
Can I use vim/nano/emacs in Shell App?
Yes, full-screen terminal applications work in Shell App:
vim filename.txt
nano config.yml
htop
The terminal properly handles:
- Alternate screen buffer
- Mouse events (if enabled in the app)
- All cursor movements and screen updates
How do I copy and paste in the terminal?
Copy:
- Select text with mouse
Ctrl+Shift+C(Linux/Windows) orCmd+C(macOS)- Or right-click and select Copy
Paste:
Ctrl+Shift+V(Linux/Windows) orCmd+V(macOS)- Or right-click and select Paste
Context Linking
What is context-aware session linking?
You can associate terminal sessions with FlowState entities:
Workspace
└── Project
└── Milestone
└── Task
This helps you:
- Organize terminals by project
- Track which commands were run for specific tasks
- Filter sessions by context
- Maintain audit trails of development work
Do I have to link sessions to a project?
No, linking is optional. You can:
- Create sessions with just a workspace
- Add project/milestone/task associations later
- Use sessions without any context for quick tasks
Can I change the context of an existing session?
Yes, you can update session context:
- Select the session
- Click the edit/settings icon
- Modify the workspace, project, milestone, or task
- Save changes
Technical
Which browsers are supported?
Shell App works best on modern browsers:
| Browser | Status | Notes |
|---|---|---|
| Chrome | Fully Supported | Recommended |
| Firefox | Fully Supported | |
| Safari | Supported | Some keyboard shortcuts may differ |
| Edge | Fully Supported | Chromium-based |
Does Shell App work offline?
Partially:
- Works offline: Viewing session list, session metadata
- Requires connection: Active terminal I/O, creating new sessions, executing commands
The shell server must be reachable for terminal functionality.
Is Shell App secure?
Yes, Shell App implements several security measures:
| Aspect | Implementation |
|---|---|
| Transport | WSS (WebSocket Secure) in production |
| Session Isolation | Per-user session filtering |
| Context Isolation | Org/workspace scope enforcement |
| Input Validation | Server-side command validation |
Note: The terminal executes commands with the permissions of the shell server process.
Can I use Shell App in Electron?
Yes! Shell App works in both web and Electron:
| Environment | Shell Server |
|---|---|
| Web Browser | Connect to remote server (default: ws://localhost:3001) |
| Electron | Automatically detects and uses built-in shell server |
In Electron, the shell server URL is automatically configured.
What shell does Shell App use?
Shell App spawns the default shell configured on the server:
- Linux: Usually
/bin/bashor/bin/zsh - macOS: Usually
/bin/zsh - Windows: PowerShell or CMD (via WSL for better experience)
The shell inherits environment variables from the server process.
Troubleshooting Quick Reference
Why can't I connect?
Check these common causes:
- Shell server not running
- Wrong server URL in settings
- Firewall blocking port 3001
- Network connectivity issues
See Troubleshooting for detailed solutions.
Why is my terminal slow?
Try these fixes:
- Clear terminal buffer (
Ctrl+K/Cmd+K) - Close unused sessions
- Check network latency
- Reduce output from commands
Why did my session disappear?
Possible reasons:
- Server was restarted (clears active processes)
- Session was deleted
- Viewing different workspace
- RxDB sync issue (try refreshing)
Still Have Questions?
If your question isn't answered here:
- Check Troubleshooting for common issues
- Review Features for detailed capability documentation
- Check Getting Started for setup guidance
- Contact FlowState support for additional help