MyAnyAgent authenticates an AI coding agent to GitHub through short-lived, repository-scoped GitHub App installation tokens instead of a password or personal access token, and can attach an AI-authorship trailer to every commit it creates.
English · 简体中文
Report a bug · Request a feature
Table of Contents
MyAnyAgent lets an AI coding agent push commits and open pull requests to GitHub without ever holding your password or minting its own long-lived token. A git credential helper (bin/myanyagent-credential-helper.cjs) signs a GitHub App JWT and mints a fresh, repository-scoped installation token on every git push or git fetch, so the token in play is always short-lived and never stored. A separate, allowlisted adapter (bin/myanyagent-upstream.cjs) covers forking a third-party repository, opening a pull request against it, and commenting on its issues, and defaults to a dry run until you approve the write. A prepare-commit-msg hook adds a Co-authored-by: trailer disclosing AI involvement, rather than leaving that to habit; it skips merge, squash and reused-message commits, and does nothing if Node.js, .myanyagent.toml or a foreign hook already in place stand in its way.
See the open issues for planned features and known issues.
- Git
- Node.js 18 or newer — both
install.shandbin/myanyagent-bootstrap.shonly check that anodeexecutable is onPATH, not its version, so an older runtime is not rejected but is unsupported - A GitHub App you register yourself, with its private key saved somewhere only you can read (the one browser-based step; see Installation below)
git clone https://github.com/anyingiit/myanyagent.git
cd myanyagent
sh install.shinstall.sh installs the tool to ~/.local/share/myanyagent, symlinks its commands into ~/.local/bin, and writes a placeholder config to ~/.config/myanyagent/config.toml. Filling that config needs a GitHub App you register yourself:
- Register a GitHub App on your account, granting it Contents: Read and write and no webhook.
- Generate its private key from the App's settings page and save the
.pemfile with mode0600. - Install the App on your own account, selecting the repositories it may touch.
- Set
client_id,app_idandprivate_keyin~/.config/myanyagent/config.tomlto the values from steps 1–3. - In each of those repositories, create a
.myanyagent.toml(config/config.template.tomlanddocs/reference.mdshow the fields), then runmyanyagent-bootstrap.
myanyagent-statusreports whether the machine config, the private key, and the current repository's git configuration are ready, and suggests a next command when something is not — sh install.sh if the tool itself is missing, or myanyagent-bootstrap otherwise; if .myanyagent.toml does not exist yet, create it first (see Installation step 5), since myanyagent-bootstrap requires that file rather than creating it. Once a repository is bootstrapped, git push and git fetch over HTTPS authenticate through the installation token automatically; docs/reference.md covers myanyagent-upstream and the rest of the per-repository configuration.
Contributions are welcome. Read CONTRIBUTING.md for how to open an issue or a pull request, and CODE_OF_CONDUCT.md for the standards expected of everyone taking part.
Please do not report security issues in public issues or pull requests. SECURITY.md explains how to report them privately.
Distributed under the MIT License. See LICENSE for details.
Project link: https://github.com/anyingiit/myanyagent