For the AROS Shell

A modern terminal
for AROS.

Limpet runs the native AROS Shell in a window with UTF-8 text, 24-bit colour, scrollback, search, copy and paste, clickable links and inline images. Your commands, scripts and assigns stay as they are.

Open source (MIT) · PC & Raspberry Pi · Version 0.10.1

Limpet window on AROS One showing Fastfetch output: the AROS logo as a picture, system details and coloured memory bars
Fastfetch in Limpet 0.10.1 on AROS One, Tokyo Night theme. The logo is a picture drawn in the terminal.

Why Limpet

The goal is
to replace CON:.

I wanted a modern terminal on AROS, so I started building Limpet.

The AROS console, CON:, shows Latin-1 text in a handful of pens. Tools written in the last twenty years expect more: UTF-8, 256 and 24-bit colours, links, a screen they can redraw. Without that, ports of current command-line programs either look broken or need a special AROS mode.

Limpet is meant to become the console you use every day. That means two things at once: existing AROS software keeps working as it does in CON:, and current command-line tools, full-screen programs and remote sessions over SSH work as they do elsewhere.

Today Limpet runs beside the system console. The Shell inside it is the ordinary AROS Shell; Limpet is the window, the text renderer, the keyboard and the history. The experimental handler can already stand in for CON:.

The comparison on the right uses one test program that sends the same bytes to both consoles without asking first. It covers these sequences on the named system and is not a complete compatibility table.

Bytes sentCON:Limpet
UTF-8 text: Polish letters, CJK, an emojishown as Latin-1 charactersshown correctly
ESC[31mpen 1pen 1, as in CON:
256 colours, ESC[38;5;196mignoredbright red
24-bit colour, ESC[38;2;255;128;0mignoredorange
OSC 8 linksequence printed as textlabel shown as a link
Capability query (DOS packet)ERROR_ACTION_NOT_KNOWNcolour level, pens, size
The test program in CON:: UTF-8 shown as Latin-1 characters, colour sequences ignored
The test program in CON:.
The same test program in Limpet: UTF-8 text, 256 and 24-bit colours and a link
The same program in Limpet. Both on AROS ABIv11 2026.09 under QEMU, Limpet 0.1.0.

Shell features

What you get
in the Shell.

Everything below works with the standard AROS Shell and its commands. Nothing needs to be installed besides Limpet.

UTF-8 and fonts

Latin, Greek, Cyrillic, CJK, combining characters and monochrome emoji. DejaVu Sans Mono Nerd Font is included, with fallbacks for other scripts. Right-to-left layout is not supported.

Colour

16, 256 and 24-bit colour. Native Shell output keeps its Workbench pens, so the prompt and List look the way AROS programs intend.

Scrollback and resize

Scroll with the wheel or Shift+PgUp. When you resize the window, the text on screen and in the history is wrapped again to the new width.

Search

RAmiga+F finds text in the output, including what has scrolled away. Ctrl+R searches the commands you typed earlier.

Copy and paste

Select with the mouse, copy with RAmiga+C, paste with RAmiga+V, through the system clipboard. A selection stays in place while other lines change.

Links

Ctrl+click opens a web address through OpenURL, or a local file with its default tool. Ctrl+Shift+click copies the address. Nothing opens by itself.

Completion and file drop

Tab completes paths and commands. Drag icons from Workbench onto the window and their quoted paths appear on the command line.

Break keys

Ctrl+C breaks the running command; Ctrl+D/E/F send their signals as in CON:; Ctrl+\ ends input.

Full-screen programs

Alternate screen, bracketed paste, resize and mouse-wheel reports, and synchronized updates for programs that draw the whole window, such as editors.

Keys, options and limits are listed in the capability reference.

Programs

Programs that
run in Limpet.

Native AROS ports that use what the terminal offers. Each is a separate download; in CON: or in a file they print plain text.

eza in Limpet: a long listing with file-type icons, sizes, dates and a Git status column, followed by a tree view of two drawers
eza 0.23.5 in Limpet 0.10.1 on AROS One. The Git column marks new (N) and modified (M) files.

eza

A replacement for List and Dir with colours, file-type icons, a tree view and Git status read straight from the repository. Permissions are the native AmigaDOS hsparwed bits.

apkg install eza
eza -l --icons --git --header
eza --icons -T src themes

eza asks Limpet whether it can draw the icons and leaves them out if not. They are shown with the bundled font at its default size. Available for ABIv11 distributions and for mainline AROS on PC and the Raspberry Pi. eza for AROS ↗

Helix in Limpet with two panes: a Rust file with syntax highlighting on the left and a C file on the right
Helix 25.07.1 in Limpet 0.10.1 on AROS One, two files side by side.

Helix

A modal text editor with syntax highlighting, multiple cursors, splits and language-server support. It needs a terminal that can redraw the screen, so it runs in Limpet and not in CON:.

hx main.rs

Available for ABIv11 distributions, where it includes a language server for WebAssembly text files, and for mainline AROS on PC and the Raspberry Pi as the editor alone. Helix for AROS ↗

apkg show in Limpet with coloured status and a table sized to the window
apkg in Limpet. In CON: it prints the same information as plain text.

Fastfetch and apkg

Fastfetch shows the system summary at the top of this page. Limpet can run it whenever a new Shell window opens: choose it in Project > Preferences, on the Shell page.

apkg install fastfetch
fastfetch -c aros-logo

apkg, the AROS package manager, uses Limpet for coloured results, tables that fit the window and a download bar that stays on one line.

Themes & Preferences

Use the colour
schemes you know.

Fifteen themes come with Limpet. Colour files made for Ghostty, Kitty and iTerm2 work as they are.

Download a scheme, put the file into the themes drawer (Preferences has a button that opens it) and pick it from the list. The window behind Preferences shows the choice at once. Use keeps it until the next restart, Save for good, Cancel goes back.

Included: Dracula, Nord, Tokyo Night, Gruvbox Dark, One Dark, Rosé Pine, Catppuccin Mocha and Latte, Solarized Dark and Light, Limpet's own dark, light and high-contrast themes, and two Amiga palettes: MagicWB and Workbench 3.1.

A theme sets the default text and background, the 16 palette colours, the cursor and the selection. Colours a program chooses itself, such as an editor's own scheme, are not changed.

Limpet Preferences, Appearance page: a list of themes, the colours of the chosen theme, font and window background settings
Preferences in Limpet 0.10.1 on AROS One. Font, size, start-up command, scrollback and history are set on the same three pages; the settings are also a plain text file.
The eza listing in the Dracula theme
Dracula
The eza listing in the Gruvbox Dark theme
Gruvbox Dark
The eza listing in the Catppuccin Latte theme
Catppuccin Latte
The eza listing in the Workbench 3.1 palette
Workbench 3.1 colours

The same eza listing in four of the included themes.

Images

Images in
the terminal.

Programs can draw pictures between lines of text, using a subset of the Kitty graphics protocol.

The James Webb Space Telescope's Cosmic Cliffs image displayed in a Limpet window
Webb's Cosmic Cliffs shown through the Kitty graphics protocol. Image: NASA, ESA, CSA, STScI.
An animated Mandelbrot zoom drawn in Limpet with text characters
No image protocol here: a Mandelbrot zoom drawn with Unicode half-blocks and 24-bit colours.

Pictures are sent as raw RGB or RGBA pixels. PNG data and scaling by the terminal are not supported; see the supported subset.

CON: replacement · experimental

Limpet as the
system console.

A separate download adds LIMPET:, a DOS console handler. One command lets it answer for CON: until the next restart.

  1. Install the handler. Unpack the experimental archive into the Limpet drawer and run Install-Handler. It mounts LIMPET: until the next reboot and writes nothing to the system's start-up files.
  2. Ask for a Limpet window by name. NewShell WINDOW LIMPET:, or any program that opens LIMPET:0/0/640/200/Title. CON: is untouched.
  3. Or let it stand in for CON:. LimpetCON ON makes new CON: windows Limpet windows: NewShell, Execute Command, programs that open their own console. LimpetCON OFF or a restart gives the system console back.

The handler reads window names the way CON: does (position, size, title, CLOSE, WAIT, AUTO, SCREEN) and supports the things console programs rely on: line and raw mode, WaitForChar(), break signals, and the Amiga cursor and window reports.

Why it is still experimental: a Limpet console window uses about 19 MiB of memory on mainline AROS and about 30 MiB on ABIv11 distributions, while the system console on mainline uses under 1 MiB. With empty size fields it opens an 80×24 window where CON: opens a strip across the screen. Programs started from Workbench icons have not been checked widely. The handler page lists what matches CON: and what does not.

A Shell window titled AROS-Shell that is drawn by Limpet after LimpetCON ON
Plain NewShell after LimpetCON ON, AROS One, Limpet 0.10.0.
The Command Output window of Workbench's Execute Command drawn by Limpet
Workbench's Execute Command writing to a Limpet window, mainline AROS, Limpet 0.10.1.

SSH

Work on
other computers.

Limpet comes with an SSH client. Open a shell on a server, a Mac or a Linux machine and use it in the same window, with the same colours, fonts and keys.

ssh user@host
ssh user@host "uname -a"
ssh -p 2222 -i Work:keys/server user@host

The first line opens a remote shell: the remote program's colours, full-screen programs such as Vim, and the window size follow along. The second runs one command and returns its return code to the AROS Shell.

Log in with a key, a password or the server's own questions. The first time you contact a server, Limpet shows the fingerprint of its key and asks; a server whose key has changed is refused.

  • Your OpenSSH files work. Keys, known_hosts and config live in ENVARC:SSH in the formats of OpenSSH. Copy a key from another computer and connect.
  • On all three systems. ABIv11 distributions, mainline AROS on PCs and on the Raspberry Pi; ssh is in the Limpet drawer.
  • Current cryptography. libssh with Mbed TLS from the aros-crypto kit; Ed25519 keys, ChaCha20-Poly1305 and AES.
  • Not there yet. File transfer, port forwarding, key generation and IPv6. The SSH guide has the details.
Limpet window titled ssh: a remote shell on a Mac showing uname, a coloured git log, git status, a file listing and a diff
A shell on a Mac from Limpet on mainline AROS, Dracula theme. Git prints its own colours.
Vim running on the remote computer inside the Limpet window, two files side by side with line numbers and syntax colours
Vim on the remote computer in the same session, two files side by side.

What is next

Where Limpet
is going.

The order of work follows the goal: first a console good enough to replace CON:, then the things a modern terminal is used for.

The full list, with links to the interfaces proposed for AROS itself, is in the roadmap.

For programmers

Colour in Limpet,
plain text in CON:.

A program can ask the console what it supports before it prints anything.

The question is a DOS packet on the output handle. It does not read from the keyboard and does not change terminal modes, so it is safe in scripts and with redirected output. Limpet answers with its colour level, pens, size and input modes; CON: and files answer that they do not know the packet, and the program prints plain text.

The SDK is a small C library with helpers for colours, progress lines, links, window titles and images. Programs that only write text and read lines need none of it: Limpet decodes their UTF-8 output as it is.

SDK 0.6.0 ↗   Protocol reference ↗

C · ASK FIRST, THEN PRINT
LimpetPresentation p;
char red[LIMPET_SEQUENCE_MAX];

fflush(stdout);
if (limpet_query_presentation(Output(), &p, NULL)
        == LIMPET_OK &&
    limpet_sgr_ansi(red, sizeof red, &p, 1, 0))
    printf("%serror:%s file not found\n",
           red, LIMPET_SGR_FG_DEFAULT);
else
    printf("error: file not found\n");

PC / Raspberry Pi

Download Limpet 0.11.0.

Archives for ABIv11 distributions such as AROS One, for mainline AROS on PC, and a test build for AROS on the Raspberry Pi.

Install with apkg

apkg update
apkg install limpet

The same command works on all three systems. About the package manager ↗

Or from an archive

Copy the Limpet drawer and its icon into SYS:Utilities, then double-click Limpet. The included README lists keys, options and known limitations. The experimental LIMPET: handler is a separate archive in the same release.

Release notes & all files ↗