A modern web-based terminal emulator built with SVELTE.
Vesen Terminal is a fully-featured web-based terminal emulator that replicates a Unix-like environment in your browser. It features a virtual file system, interactive commands, modifiable themes, and a responsive design that works across devices.
# Run the latest version
docker run -d --name vesen-terminal -p 3000:3000 ghcr.io/hsavlesen/vesen
# Or use docker-compose
docker-compose up -d
Access the terminal at http://localhost:3000
Prerequisites: Node.js 18.17.0 or higher
# Clone the repository
git clone https://github.com/hsalvesen/vesen.git
cd vesen
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
Type help
in the terminal to see all available commands, or explore the file system with ls
and cd
.
docker run -d \
--name vesen-terminal \
-p 3000:3000 \
--restart unless-stopped \
ghcr.io/hsavlesen/vesen
# Build the image
docker build -t vesen-terminal .
# Run the container
docker run -d -p 3000:3000 vesen-terminal
services:
terminal:
image: ghcr.io/hsavlesen/vesen
container_name: vesen-terminal
restart: unless-stopped
ports:
- "3000:3000"
.src/
├── components/ # Svelte components
│ ├── History.svelte # Command history display
│ ├── Input.svelte # Command input handling
│ └── Ps1.svelte # Terminal prompt
├── utils/
│ ├── commands/ # Command implementations
│ ├── virtualFileSystem.ts
│ └── commands.ts
├── stores/ # Svelte stores
└── interfaces/ # TypeScript interfaces
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run check # Run Svelte type checking
Contributions are welcome! Please feel free to submit pull requests or open issues.
git checkout -b feature/new-feature
npm run check
git commit -m 'Add new feature'
git push origin feature/new-feature
This project is licensed under the MIT License - see the LICENSE file for details.
Has Salvesen