ScriptsMay 30, 2026·3 min read

OliveTin — Safe Web Interface for Predefined Shell Commands

OliveTin gives safe and simple access to predefined shell commands from a web interface. It lets sysadmins and homelab operators expose specific server actions as clickable buttons without granting full shell access.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
OliveTin
Direct install command
npx -y tokrepo@latest install 593db9dc-5c22-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

OliveTin provides a web-based dashboard of clickable buttons, each mapped to a predefined shell command. It is designed for situations where you want to let users or team members trigger specific server actions without giving them SSH access or teaching them command-line syntax.

What OliveTin Does

  • Exposes predefined shell commands as web buttons with a clean UI
  • Supports parameterized commands with input fields for arguments
  • Provides an API for triggering actions programmatically
  • Logs all command executions for auditing and troubleshooting
  • Runs as a single Go binary or Docker container

Architecture Overview

OliveTin is written in Go and serves a single-page web application. Configuration is defined in a YAML file that maps button labels to shell commands. When a button is clicked, the backend executes the corresponding command in a subprocess and streams output back to the browser. The YAML config supports arguments, dropdowns, and confirmation dialogs for safe execution.

Self-Hosting & Configuration

  • Deploy via Docker with a mounted configuration file
  • Define actions in config.yaml with command, title, and optional arguments
  • Set up authentication using built-in basic auth or a reverse proxy
  • Configure execution timeouts and concurrent command limits
  • Install as a systemd service on bare-metal Linux systems

Key Features

  • Single YAML file defines all available actions
  • Parameterized commands with dropdown menus and text inputs
  • Real-time command output streaming to the web interface
  • RESTful API for automation and integration with other tools
  • Lightweight single binary with no database dependency

Comparison with Similar Tools

  • Rundeck — enterprise job scheduler with complex setup; OliveTin is a simple button dashboard with minimal configuration
  • Semaphore — Ansible/Terraform UI with project management; OliveTin focuses on ad-hoc shell command execution
  • Webhook — runs commands via HTTP endpoints but lacks a UI; OliveTin provides a visual button interface
  • Portainer — Docker management UI; OliveTin is container-agnostic and runs any shell command

FAQ

Q: Is OliveTin secure enough for production use? A: It executes only commands defined in the config file, so users cannot run arbitrary commands. Pair it with reverse proxy authentication for additional security.

Q: Can I use OliveTin to manage Docker containers? A: Yes. Define docker start, stop, or restart commands as actions in the config file.

Q: Does it support multi-user access control? A: Basic access control is available. For fine-grained permissions, use a reverse proxy with authentication.

Q: Can actions be triggered on a schedule? A: OliveTin itself does not include a scheduler, but its API can be called from cron jobs or other scheduling tools.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets