swain-keys

Generate per-project ed25519 SSH keys and configure Git signing for GitHub.

Updated Feb 22, 2026
One-click install
npx skills add https://github.com/cristoslc/tidegate --skill swain-keys
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: swain-keys
Source: https://github.com/cristoslc/tidegate/tree/main/.agents/skills/swain-keys
Command: npx skills add https://github.com/cristoslc/tidegate --skill swain-keys

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This Skill automates the setup of per-project SSH keys, ensuring secure and isolated Git operations for signing and authentication without interfering with global SSH configurations.

Core Features & Use Cases

  • Per-Project Key Generation: Creates unique ed25519 SSH keys for each project.
  • Git Signing Configuration: Automatically configures Git to sign commits and tags using the project-specific key.
  • GitHub Integration: Registers SSH keys with GitHub for both authentication and signing.
  • SSH Host Aliasing: Sets up project-specific SSH host aliases to bypass global SSH agents like 1Password.
  • Use Case: When starting a new project, this Skill ensures your Git commits are securely signed and authenticated using a dedicated SSH key, simplifying SSH management across multiple repositories.

Quick Start

Run the swain-keys script to provision SSH keys for the current project.

Frequently Asked Questions about swain-keys

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up per-project SSH keys for Git?

Per-project SSH keys for Git are unique ed25519 keys generated for each repository to isolate authentication and signing. This approach prevents credential overlap and ensures secure, dedicated access for individual repositories without modifying global configurations.

Can I configure Git commit signing with a project-specific SSH key?

Configuring Git commit signing with a project-specific SSH key involves generating an ed25519 key and updating local Git config to sign commits. This automatically registers the key with GitHub, ensuring tags and commits are cryptographically verified per project.

How do I bypass global SSH agents like 1Password for a specific GitHub repository?

Bypassing global SSH agents like 1Password for a specific GitHub repository requires setting up SSH host aliases. This routes repository traffic through a dedicated project-specific key instead of the default global agent identity, ensuring isolated authentication.

Does this workflow automatically register SSH keys with GitHub?

Yes, the workflow automatically registers SSH keys with GitHub for both authentication and signing. It updates Git remotes to use project-specific host aliases, ensuring that all repository operations are securely authenticated and cryptographically signed.

Why use isolated SSH keys for multi-project Git environments?

Using isolated SSH keys for multi-project Git environments ensures secure and separated operations across repositories. Generating unique keys per project prevents cross-repository credential interference and bypasses global SSH configurations, maintaining strict access boundaries.