Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serval icon

Serval

A native macOS console for managing AI agent configurations on local and remote Linux hosts.

Features

  • Manage prompts, skills, MCP servers, plugins, and lifecycle hooks.
  • Switch between the local machine and Linux hosts from ~/.ssh/config.
  • Inspect remote operating system, CPU, memory, storage, network, CLI tools, and configuration files.
  • Cache the last valid snapshot locally and refresh stale data in the background.
  • Refresh the active workspace without clearing the current view.
  • Write remote configuration files atomically and detect concurrent changes.

Serval supports Claude, Codex, and TraeX configuration layouts. It reuses the system OpenSSH configuration and never stores SSH passwords, private keys, or independent connection profiles.

Requirements

macOS

  • macOS 14 or later
  • Swift 6
  • Xcode Command Line Tools or Xcode

Remote hosts

  • Linux
  • A named host entry in ~/.ssh/config
  • Non-interactive authentication through OpenSSH
  • bash and GNU core utilities

Some environment details use optional commands such as ip and lscpu. Remote skill updates also require curl and unzip.

Build and run

swift build --disable-sandbox
swift run Serval

Package

./scripts/package-dmg.sh

The packaging script writes Serval.app and a DMG to dist/. Its default ad-hoc signature is intended for local development. Public distribution requires a Developer ID certificate and Apple notarization:

export SIGN_MODE=developer-id
export SIGNING_IDENTITY="Developer ID Application: Your Name (TEAMID)"
export NOTARY_PROFILE="serval-notary"
export NOTARIZE=auto
./scripts/package-dmg.sh

Supported packaging variables include APP_VERSION, BUILD_NUMBER, BUNDLE_ID, SIGN_MODE, and NOTARIZE. The default bundle identifier is io.github.asilencer.serval.

Data and security

  • Agent and environment snapshots are stored under ~/Library/Application Support/Serval.
  • Cache directories use mode 700; snapshot files use mode 600.
  • SSH credentials and MCP environment values are not written to the cache or diagnostics log.
  • Remote prompt writes use revision checks, temporary files, backups, and atomic replacement.
  • Skill deletion is limited to validated skill paths on the selected host.

Third-party assets

Interface icons from REICON are included under the MIT License. Its license text is available at src/Resources/Reicon/LICENSE.txt.

License

Serval is available under the MIT License.

About

A native macOS console for managing AI agent configurations on local and remote Linux hosts.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages