Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @anwhelan01
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
open-pull-requests-limit: 5
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: ci

on:
push:
branches: [main]
pull_request:

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
- run: npm ci
- run: npm run typecheck
- run: npm run lint --if-present
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@ AGENTS.project.md
public/__grok/
.nitro/
coverage/

# Hermes personal overrides
AGENTS.override.md
.hermes/*.local.yaml
7 changes: 7 additions & 0 deletions .hermes/SOUL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Plainly

You are Plainly, a copy desk. Cut throat-clearing, brochure words, and model English. Keep the facts. A skill file is hope; a linter is proof.

Banned openers: I'd be happy to, Great question, Let's dive in. Banned wrappers: It's important to note. Banned brochure: robust, seamless, tapestry, unlock the potential.

Voice: Google developer style plus the anti-slop appendix. Short sentences. Verbs first.
18 changes: 18 additions & 0 deletions .hermes/bot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: plainly
title: Plainly
description: "A copy desk for Claude-lish. Lint, rewrite, export a Google-style writing skill."
avatar:
silhouette: boxy
color: slate
soul: SOUL.md
skills:
- plainly
toolsets:
- terminal
- web
groups:
- desks
mentions:
- bullshit-radar
agent:
bot_mode_protocol: true
31 changes: 31 additions & 0 deletions .hermes/skills/plainly/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: plainly
description: Lint and rewrite prose against Google developer style plus the anti-slop appendix. Export a host-specific SKILL.md.
version: 1.0.0
metadata:
hermes:
tags: [k3ss, plainly]
category: desk
---

# Plainly

A copy desk for Claude-lish. Lint, rewrite, export a Google-style writing skill.

## When to use

The operator is working in `plainly` or @mentions `plainly`.

## Do

Lint and rewrite prose against Google developer style plus the anti-slop appendix. Export a host-specific SKILL.md.

## Do not

Violate `.hermes/SOUL.md`. Do not commit secrets. Do not invent live market data, checksums, or Sharpes.

## Project

Load `AGENTS.md` at the repo root. Install the Bot with `./scripts/install-hermes-bot.sh`.

Chat: `hermes -p plainly chat`
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Plainly

<div align="center">

<p align="center">
<img src="public/og.jpg" alt="Plainly" width="100%" />
</p>

<p>
<a href="https://hermes-agent.nousresearch.com/docs/user-guide/bot-mode"><img src="https://img.shields.io/badge/Hermes-Bot_Mode-6d28d9?style=for-the-badge&labelColor=0a0a0a" alt="Hermes Bot Mode" /></a>
<img src="https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&labelColor=0a0a0a&logo=typescript&logoColor=white" alt="TypeScript" />
<img src="https://img.shields.io/badge/license-MIT-fbbf24?style=for-the-badge&labelColor=0a0a0a" alt="MIT" />
<img src="https://img.shields.io/badge/public-111111?style=for-the-badge&labelColor=0a0a0a" alt="public" />
</p>

</div>


A copy desk for Claude-lish.

Paste AI writing. The desk marks throat-clearing, brochure words, and Google
Expand Down Expand Up @@ -100,3 +116,29 @@ Anti-slop rules are original to this project. See [NOTICE.md](NOTICE.md).

MIT for original code and the anti-slop appendix. Google's source material
stays under its licenses.

---

## Hermes Bot Mode

This desk is a named [Hermes](https://hermes-agent.nousresearch.com/) Bot — own model slot, memory, skills, routines, and `@mentions`.

```bash
# once
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

# this repo
./scripts/install-hermes-bot.sh
hermes -p plainly chat
```

In Hermes Desktop the Bot lands under **Bots**. Type `@plainly` from any chat; group it with the rest of the k3ss roster (`desks`).

| File | Role |
| --- | --- |
| [`AGENTS.md`](AGENTS.md) | Project harness Hermes loads at session start |
| [`.hermes/SOUL.md`](.hermes/SOUL.md) | Bot personality |
| [`.hermes/bot.yaml`](.hermes/bot.yaml) | Roster, skills, groups |
| [`.hermes/skills/plainly/SKILL.md`](.hermes/skills/plainly/SKILL.md) | Portable skill |

Docs: [Bot Mode](https://hermes-agent.nousresearch.com/docs/user-guide/bot-mode) · [Context files](https://hermes-agent.nousresearch.com/docs/user-guide/features/context-files) · [Skills](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills)
6 changes: 6 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Security

- Do not commit API keys, cookies, or session tokens.
- `XAI_API_KEY` and provider secrets stay in the environment, never in git.
- Report vulnerabilities privately: open a security advisory on this repo, or email the owner via GitHub.
- This project is operated by [anwhelan01](https://github.com/anwhelan01).
42 changes: 42 additions & 0 deletions scripts/install-hermes-bot.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Install this repo as a Hermes Bot Mode profile.
# Docs: https://hermes-agent.nousresearch.com/docs/user-guide/bot-mode
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
YAML="$ROOT/.hermes/bot.yaml"
SOUL="$ROOT/.hermes/SOUL.md"

if [[ ! -f "$YAML" ]]; then
echo "missing $YAML" >&2
exit 1
fi

NAME="$(awk '/^name:/{print $2; exit}' "$YAML" | tr -d '"' | tr -d "'")"
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
DEST="$HERMES_HOME/profiles/$NAME"

mkdir -p "$DEST/skills" "$DEST/memories"
cp "$YAML" "$DEST/bot.yaml"
if [[ -f "$SOUL" ]]; then
cp "$SOUL" "$DEST/SOUL.md"
fi
if [[ -d "$ROOT/.hermes/skills" ]]; then
cp -R "$ROOT/.hermes/skills/." "$DEST/skills/"
fi
if [[ -f "$ROOT/.hermes/routines.yaml" ]]; then
cp "$ROOT/.hermes/routines.yaml" "$DEST/routines.yaml"
fi

# Project-local skills are also discovered at <repo>/.hermes/skills when cwd is the repo.
echo "Installed Hermes bot '$NAME'"
echo " profile: $DEST"
echo " chat: hermes -p $NAME chat"
echo " cron: hermes cron list # namespaced [bot:$NAME]"
echo
echo "Desktop: Bots tab → the profile is on this machine. @${NAME} from any chat."
if [[ ! -x "$(command -v hermes || true)" ]]; then
echo
echo "Hermes CLI not on PATH. Install:"
echo " curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash"
fi
Loading