diff --git a/README.md b/README.md index 26a937a..fbe17fc 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ | [fzf](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/fzf) | `fzf` — general-purpose command-line fuzzy finder | gh release | 1.0.0 | | [github.com-cli](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/github.com-cli) | `gh` — GitHub CLI | curl | 1.0.0 | | [helix-editor.com](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/helix-editor.com) | `hx` — modal text editor with built-in LSP | gh release | 1.0.0 | +| [hermes-agent.nousresearch.com](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/hermes-agent.nousresearch.com) | `hermes` — self-improving AI agent by Nous Research | curl | 1.0.0 | | [icholy/ttygif](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/icholy-ttygif) | `ttygif` — convert ttyrec recordings to animated GIFs | gh release | 1.0.0 | | [jj-vcs.dev](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/jj-vcs.dev) | `jj` — Git-compatible distributed VCS | gh release | 1.0.1 | | [jnsahaj/lumen](https://github.com/devcontainer-community/devcontainer-features/tree/main/src/jnsahaj-lumen) | `lumen` — AI-powered commit message generator | cargo | 1.0.0 | diff --git a/src/hermes-agent.nousresearch.com/NOTES.md b/src/hermes-agent.nousresearch.com/NOTES.md new file mode 100644 index 0000000..d4c2584 --- /dev/null +++ b/src/hermes-agent.nousresearch.com/NOTES.md @@ -0,0 +1,17 @@ +# hermes-agent.nousresearch.com + +## Project + +- [Hermes Agent](https://github.com/NousResearch/hermes-agent) + +## Description + +The self-improving AI agent built by [Nous Research](https://nousresearch.com). Hermes has a built-in learning loop — it creates skills from experience, improves them during use, and builds a deepening model of who you are across sessions. Supports any model via OpenRouter, OpenAI, Anthropic, and more. + +## Installation Method + +Installed to the remote user's home directory via the official install script: `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -s -- --skip-setup`. + +## Other Notes + +_No additional notes._ diff --git a/src/hermes-agent.nousresearch.com/devcontainer-feature.json b/src/hermes-agent.nousresearch.com/devcontainer-feature.json new file mode 100644 index 0000000..fb814c1 --- /dev/null +++ b/src/hermes-agent.nousresearch.com/devcontainer-feature.json @@ -0,0 +1,17 @@ +{ + "name": "hermes-agent.nousresearch.com", + "id": "hermes-agent.nousresearch.com", + "version": "1.0.0", + "description": "Install \"hermes\" binary", + "documentationURL": "https://github.com/devcontainer-community/devcontainer-features/tree/main/src/hermes-agent.nousresearch.com", + "options": { + "version": { + "type": "string", + "default": "latest", + "proposals": [ + "latest" + ], + "description": "Currently unused." + } + } +} diff --git a/src/hermes-agent.nousresearch.com/install.sh b/src/hermes-agent.nousresearch.com/install.sh new file mode 100755 index 0000000..8cd30a8 --- /dev/null +++ b/src/hermes-agent.nousresearch.com/install.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -o errexit +set -o pipefail +set -o noclobber +set -o nounset +set -o allexport +readonly name="hermes" +apt_get_update() { + if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then + echo "Running apt-get update..." + apt-get update -y + fi +} +apt_get_checkinstall() { + if ! dpkg -s "$@" >/dev/null 2>&1; then + apt_get_update + DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends --no-install-suggests --option 'Debug::pkgProblemResolver=true' --option 'Debug::pkgAcquire::Worker=1' "$@" + fi +} +apt_get_cleanup() { + apt-get clean + rm -rf /var/lib/apt/lists/* +} +echo_banner() { + local text="$1" + echo -e "\e[1m\e[97m\e[41m$text\e[0m" +} +install() { + apt_get_checkinstall curl ca-certificates git xz-utils + su "${_REMOTE_USER}" -c "curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash -s -- --skip-setup" + apt_get_cleanup +} +echo_banner "devcontainer.community" +echo "Installing $name..." +install "$@" +echo "(*) Done!" diff --git a/test/hermes-agent.nousresearch.com/test.sh b/test/hermes-agent.nousresearch.com/test.sh new file mode 100755 index 0000000..210bfe1 --- /dev/null +++ b/test/hermes-agent.nousresearch.com/test.sh @@ -0,0 +1,18 @@ +#!/bin/bash + + +set -e + +# Optional: Import test library bundled with the devcontainer CLI +# See https://github.com/devcontainers/cli/blob/HEAD/docs/features/test.md#dev-container-features-test-lib +# Provides the 'check' and 'reportResults' commands. +source dev-container-features-test-lib + +# Feature-specific tests +# The 'check' command comes from the dev-container-features-test-lib. Syntax is... +# check