Skip to content

AbrahamX3/termify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Termify logo

Termify

Quality CI Windows release build GitHub release License

Desktop app for organizing local projects and running terminal processes in one place — terminals, agents, and commands with state, output, and analytics.

Electron · React · TypeScript

Install

curl -fsSL https://termify.abraham.lat/install | bash

Features

  • Projects & processes — Run and watch commands, agents, and scripts with persisted state and output history.
  • Built-in terminals — Multiple terminals per project with xterm.js and native node-pty where supported.
  • Analytics — Usage and process metrics in the app UI.
  • MCP server — Optional Model Context Protocol integration for external tools (e.g. OpenCode).

Requirements

Tool Notes
Node.js 24.x (see engines in package.json)
pnpm Package manager used by this repo

Native modules (important on Windows)

Termify depends on native addons (better-sqlite3, node-pty, pidusage, and others). They compile during pnpm install. If install or build fails with errors about missing compilers or node-gyp:

  • Windows: Install Visual Studio Build Tools with the “Desktop development with C++” workload (includes MSVC, Windows SDK, and CMake pieces node-gyp expects). A full Visual Studio install with that workload also works.
  • macOS: Install Xcode Command Line Tools: xcode-select --install
  • Linux: Typical build chain, e.g. build-essential, python3, and often libudev-dev / similar depending on distro; see Electron/node-gyp docs if linking fails.

After installing build tools, run pnpm install again (or pnpm rebuild if needed).

Getting started

# Use Node 24 (nvm, fnm, volta, asdf, etc.)
node -v   # should print v24.x.x

pnpm install
pnpm start

This runs Electron Forge with Vite; the renderer uses hot reload while developing.

Scripts

Command Purpose
pnpm start Development mode (Electron Forge + Vite)
pnpm build Package app for current platform (electron-forge packageout/ + .vite/)
pnpm build:mcp Build standalone MCP entry (out/mcp/mcp-entry.js) for tools that run MCP via Node
pnpm typecheck TypeScript check
pnpm lint Lint (oxlint)
pnpm format Format (oxfmt)
pnpm format:check Verify formatting (CI uses this; no writes)
pnpm dist:win / dist:mac / dist:linux Build MCP entry then create installers (electron-forge make)

Database migrations are managed with Drizzle; schema changes use pnpm db:generate when you adjust the schema (see drizzle/).

MCP (Model Context Protocol)

Termify can expose an MCP server so external clients (e.g. OpenCode) can list projects, read output, and control processes. See MCP_SETUP.md for configuration. The in-app Settings → MCP Server tab shows status and copy-paste config snippets.

GitHub Actions

Automation lives in .github/workflows/. See Actions for run history and logs.

Workflow When it runs What it does
CI Every push and pull request pnpm typecheck, pnpm lint, pnpm format:check on Ubuntu (Node 24, pnpm store cache)
Release Push tag vx.y.z (must match package.json version) Windows: pnpm build:mcp then electron-forge publish (Squirrel Setup + update metadata) to Releases; release notes body updated from the GitHub API

Tagging: Bump package.json version to x.y.z, then create git tag vx.y.z (e.g. "version": "1.4.0"v1.4.0). Only v… tags trigger the release workflow; bare x.y.z tags are ignored.

About

A fast, local app for organizing projects and managing terminal processes—with real-time monitoring, analytics, and streamlined controls—all in one place.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors