SkillAgentSearch skills...

MagicTerm

Cross-platform SSH/SFTP client with E2E encryption and cloud sync

Install / Use

/learn @D3FVLT/MagicTerm
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Magic Term

Cross-platform SSH/SFTP client with E2E encryption and cloud sync.

Magic Term License

Features

  • SSH Terminal — full color support, search (Cmd/Ctrl+F)
  • SFTP File Manager — dual-panel UI, drag-and-drop transfers
  • Built-in Text Editor — edit remote files directly
  • Session Tabs — multiple connections with persistent state
  • Personal Snippets — encrypted storage for tokens/secrets, paste to terminal
  • Organizations — team collaboration with role management (owner/admin/member/viewer)
  • E2E Encryption — credentials encrypted client-side with AES-256-GCM
  • Cloud Sync — via Supabase, works across devices
  • Cross-platform — macOS, Windows, Linux
  • Auto-updates — Windows (silent), macOS (notification with download link)

Known Issues

Registration flow is functional but visually unpolished:

  • After registration, the confirmation email redirects to localhost or google.com — this is expected behavior
  • Clicking the confirmation link in your email verifies your account
  • The registration dialog doesn't auto-close — after confirming your email, go back to the app and click "Login"

Organizations:

  • Inviting members does not send an email — the invite appears in the app UI only
  • Invited users need to re-login (restart the app) to see pending invites
  • Nickname changes don't reflect in organization member lists (shows email instead)

UI quirks:

  • Some UI elements may jump/flicker, especially when changing member roles in organizations

These will be improved in future releases.

Installation

Windows

Download MagicTerm-x64.exe and run the installer.

Auto-updates are enabled — the app will silently update in background.

macOS

Download the .dmg for your architecture:

First launch fix (app is not code-signed):

xattr -cr "/Applications/Magic Term.app"

Auto-updates show a notification with download link.

Linux

AppImage:

chmod +x MagicTerm-*-x86_64.AppImage
./MagicTerm-*-x86_64.AppImage

Debian/Ubuntu:

sudo dpkg -i magicterm_*_amd64.deb

Arch Linux (AUR):

yay -S magicterm-bin

Auto-updates are not supported on Linux.

Quick Start (Development)

Prerequisites

  • Node.js 20+
  • pnpm 9+

Setup

# Clone
git clone https://github.com/D3FVLT/MagicTerm.git
cd MagicTerm

# Install dependencies
pnpm install

# Set up Supabase (see docs/SUPABASE_SETUP.md)
cp apps/desktop/.env.example apps/desktop/.env
# Edit .env with your Supabase credentials

# Run the SQL schema
# Execute supabase/schema.sql in your Supabase SQL Editor
# Then run additional migrations: add-user-profiles.sql, add-user-settings.sql, add-snippets.sql

# Start development
pnpm dev

Project Structure

MagicTerm/
├── apps/
│   └── desktop/           # Electron app
│       ├── src/
│       │   ├── main/      # Main process (SSH, SFTP, updater)
│       │   ├── preload/   # IPC bridge
│       │   └── renderer/  # React UI
│       └── ...
├── packages/
│   ├── shared/            # Shared types & constants
│   ├── crypto/            # E2E encryption (AES-256-GCM)
│   └── supabase-client/   # Supabase SDK wrapper
└── supabase/              # Database schema & migrations

Security

  • Client-side encryption — All credentials encrypted with AES-256-GCM before leaving your device
  • Master password — Never transmitted or stored, only used to derive encryption keys
  • Zero-knowledge sync — Supabase only stores encrypted blobs
  • Row Level Security — Database policies ensure data isolation between users

Building

# macOS (Intel + Apple Silicon)
pnpm --filter @magicterm/desktop dist:mac

# Windows (x64)
pnpm --filter @magicterm/desktop dist:win

# Linux (AppImage + deb)
pnpm --filter @magicterm/desktop dist:linux

Output will be in apps/desktop/release/.

CI/CD Setup

Add these secrets to your GitHub repository:

| Secret | Description | |--------|-------------| | SUPABASE_URL | Your Supabase project URL | | SUPABASE_ANON_KEY | Supabase publishable (anon) key |

Create a tag to trigger a release:

git tag v0.4.0
git push origin v0.4.0

The workflow builds all platforms in parallel, then creates a release with all artifacts.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

MIT

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated15d ago
Forks0

Languages

TypeScript

Security Score

70/100

Audited on Mar 24, 2026

No findings