Skip to content

murinsel/AmigaAI

Repository files navigation

AmigaAI

A native AI assistant for the Commodore Amiga, powered by Anthropic's Claude API.

AmigaAI brings modern AI capabilities to AmigaOS 3.x, running natively on 68020+ hardware. It communicates with the Claude API over HTTPS using the Amiga's own TCP/IP stack and TLS libraries — no emulation, no bridging, just pure Amiga.

Features

  • MUI-based chat interface with real-time conversation display
  • Tool use — Claude can execute AmigaDOS commands, send ARexx messages, read/write files, identify file types, and control mouse/keyboard
  • Drag & drop — Drop files onto the chat area to send images or text to Claude, drop onto the input field to insert the path
  • Image conversion — Amiga image formats (ILBM, etc.) are automatically converted to PNG via DataTypes before sending to the API
  • Input simulation — Mouse positioning, clicks (left/right/middle), and keyboard input via input.device
  • Persistent memory across sessions
  • Localization — English (built-in) and German via locale.library catalogs
  • ARexx port (AMIGAAI) for scripting and automation
  • Window control — Move, resize, iconify via ARexx commands
  • FileType standalone CLI command for DataType-based file identification
  • Configurable model, system prompt, and API key via AmigaOS ENV: system
  • Single instance — Only one copy of AmigaAI runs at a time
  • API logging for debugging (CLI and ToolType activation)

Requirements

  • AmigaOS 3.x (68020 CPU or higher)
  • Roadshow TCP/IP stack
  • AmiSSL v5
  • MUI 3.8+ with TextEditor.mcc

Building

Cross-compilation (recommended)

./build.sh

Uses Bebbo's amiga-gcc toolchain. The build script auto-detects a native m68k-amigaos-gcc installation or falls back to Docker.

Native on Amiga

make -f Makefile.amiga

Requires Bebbo's GCC installed on the Amiga.

Configuration

Set your Anthropic API key:

echo "sk-ant-your-key" > ENV:AmigaAI/api_key

Save permanently:

copy ENV:AmigaAI ENVARC:AmigaAI ALL

Command Line Arguments

AmigaAI [CREATEICON] [APILOG <file>] [APIHOST <host>] [APIPORT <port>] [NOSSL]
Argument Description
CREATEICON Create a Workbench icon (.info file) for AmigaAI and exit
APILOG <file> Log all API requests and responses to the specified file
APIHOST <host> API endpoint host (default: api.anthropic.com)
APIPORT <port> API endpoint port (default: 443)
NOSSL Use plain HTTP instead of HTTPS

Example:

AmigaAI APILOG RAM:api.log
AmigaAI APIHOST=192.168.1.10 APIPORT=3456 NOSSL

ToolTypes

When launched from Workbench, AmigaAI reads ToolTypes from its icon (.info file):

ToolType Description
APILOG=<file> Log all API requests and responses to the specified file
APIHOST=<host> API endpoint host
APIPORT=<port> API endpoint port
NOSSL Use plain HTTP instead of HTTPS

Example icon ToolType entry: APILOG=RAM:api.log

Tools

AmigaAI provides Claude with the following tools:

Tool Description
shell_command Execute AmigaDOS commands
arexx_command Send ARexx commands to running applications
read_file Read file contents
write_file Write to files
list_ports List active ARexx message ports
identify_file Identify file types using the DataType system
arexx_help Look up detailed ARexx command documentation on demand
mouse_move Move mouse pointer to screen coordinates
mouse_click Click mouse button (left, right, middle)
key_press Send a raw keyboard event
type_text Type a string via keyboard simulation
screenshot Capture a screenshot (full screen or region)

ARexx Knowledge Base

AmigaAI includes detailed ARexx documentation for popular Amiga applications. When Claude detects a running ARexx port, it automatically loads the compact command overview. For detailed parameter info, it can query individual commands on demand via the arexx_help tool — keeping token usage low while providing full documentation depth.

Supported applications: DMusic, IBrowse, PageStream, Workbench, YAM

Additional applications can be supported by adding .md (overview) and .help (detailed reference) files to instructions/ARexx/.

FileType

A standalone CLI command for identifying file types:

FileType SYS:Utilities/MultiView
FileType WORK:Images FILTER picture ALL
FileType DH0: FILTER ILBM ALL MAXFILES 20

ARexx Interface

Port name: AMIGAAI

Command Description
ASK <question> Send a question to Claude
GETLAST Get the last response
CLEAR Clear conversation history
SETMODEL <model> Change the Claude model
SETSYSTEM <prompt> Set system prompt
MEMADD <text> Add a persistent memory entry
MEMCLEAR Clear all memory entries
MEMCOUNT Return number of memory entries
MEMORY Return all memory entries
MOVE <left> <top> Move window to position
RESIZE <width> <height> Resize window
WINDOWPOS Get window position and size
WINDOWTOFRONT Bring window to front
WINDOWTOBACK Send window to back
MOUSEMOVE <x> <y> Move mouse to screen coordinates
MOUSECLICK <button> Click mouse (LEFT, RIGHT, MIDDLE)
KEYPRESS <code> [<qual>] Send raw key event
TYPETEXT <text> Type text via keyboard simulation
HIDE Iconify the application
SHOW Deiconify the application
QUIT Exit AmigaAI

Localization

AmigaAI uses AmigaOS locale.library for localization. English is built-in, German is included as a catalog file.

To use German: Set your system language to "deutsch" in the Locale preferences, and copy Catalogs/Deutsch/AmigaAI.catalog to LOCALE:Catalogs/Deutsch/.

License

This project is provided as-is for the Amiga community.

About

Native Claude AI agent for AmigaOS 3.x (68020+)

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors