mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 06:34:26 +01:00
2.2 KiB
2.2 KiB
Goose Web Interface
The goose web command provides a (preview) web-based chat interface for interacting with Goose.
Do not expose this publicly - this is in a preview state as an option.
Usage
# Start the web server on default port (3000)
goose web
# Start on a specific port
goose web --port 8080
# Start and automatically open in browser
goose web --open
# Bind to a specific host
goose web --host 0.0.0.0 --port 8080
Features
- Real-time chat interface: Communicate with Goose through a clean web UI
- WebSocket support: Real-time message streaming
- Session management: Each browser tab maintains its own session
- Responsive design: Works on desktop and mobile devices
Architecture
The web interface is built with:
- Backend: Rust with Axum web framework
- Frontend: Vanilla JavaScript with WebSocket communication
- Styling: CSS with dark/light mode support
Development Notes
Current Implementation
The web interface provides:
- A simple chat UI similar to the desktop Electron app
- WebSocket-based real-time communication
- Basic session management (messages are stored in memory)
Future Enhancements
- Persistent session storage
- Tool call visualization
- File upload support
- Multiple session tabs
- Authentication/authorization
- Streaming responses with proper formatting
- Code syntax highlighting
- Export chat history
Integration with Goose Agent
The web server creates an instance of the Goose Agent and processes messages through the same pipeline as the CLI. However, some features like:
- Extension management
- Tool confirmations
- File system interactions
...may require additional UI components to be fully functional.
Security Considerations
Currently, the web interface:
- Binds to localhost by default for security
- Does not include authentication (planned for future)
- Should not be exposed to the internet without proper security measures
Troubleshooting
If you encounter issues:
- Port already in use: Try a different port with
--port - Cannot connect: Ensure no firewall is blocking the port
- Agent not configured: Run
goose configurefirst to set up a provider