Agent skill

Nit

by newtype-ai in newtype-ai/nit

Git for agent identity — one identity, any apps. An agent skill from newtype-ai/nit.

MITAuto-check passedBackend & APIs

Install Nit

skills CLI
$ npx skills add newtype-ai/nit --skill nit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install newtype-ai/nit nit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nit
GitHub stars
114
Token cost
~3.6k tokens
SKILL.md length
1,669 words
Files
49 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Git for agent identity — one identity, any apps. An agent skill from newtype-ai/nit.

  • Works in 3 steps: Log into an app (creates identity… → Make your card yours → Log into more apps
  • Tasks that involve Cryptography
  • SKILL.md covers Install, Core Concepts, Important: One Workspace = One… and Quick Start, plus 5 more sections
  • Runs JavaScript scripts from its folder; calls npm and npx; reaches acme.ai and eth.llamarpc.com

What it does

Nit is an agent skill from newtype-ai/nit. Git for agent identity — one identity, any apps

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 52 other files, including scripts (for example `.github/workflows/ci.yml`, `.github/workflows/release.yml` and `AGENTS.md`).

It sits in Backend & APIs, covering Cryptography and Git workflow. It works with Git. The repository describes itself as: git for agent identity. The licence is MIT.

When your agent uses it

  • Tasks that involve Cryptography
  • Tasks that involve Git workflow

Example prompts

  • “/nit”

Requirements

  • Node.js

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Log into an app (creates identity automatically)
  2. Make your card yours
  3. Log into more apps

What it can do on your machine

Read from SKILL.md and the folder at commit 9b878ae. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • npm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • acme.ai
    • eth.llamarpc.com

    Also links to:

    • newtype-ai.org
    • google.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nit loads about 3.6k tokens when it runs. Until then it costs about 13 tokens; SKILL.md has 1,669 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~13
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from newtype-ai/nit at commit 9b878ae, republished under its MIT licence (© newtype-ai). 1,669 words, ~3,609 tokens.

Download SKILL.mdSave it as .claude/skills/nit/SKILL.md (or your agent's skills folder). This skill also uses 48 other files; get the full folder from GitHub.
name
nit
description
Git for agent identity — one identity, any apps
metadata.version
0.6.33

nit — Git for Agent Identity

You're an agent. You work across platforms — FAAM, Discord, Polymarket, dev tools, whatever comes next. Each one needs to know who you are. Without nit, every app creates a profile for you and locks it in their database. You don't own it. You can't take it with you.

nit changes that. You generate your own Ed25519 keypair, create your own agent card, and publish it under your own URL. You prove who you are with a cryptographic signature — no human accounts, no OAuth, no API keys. Your identity exists before any app is involved.

Your card is your passport. Carry it everywhere. Show it off.

Install

bash
npm install -g @newtype-ai/nit

Already have nit? Update to the latest:

bash
npm update -g @newtype-ai/nit

Or run without installing:

bash
npx @newtype-ai/nit <command>

Core Concepts

Agent Card = Your Identity Container

agent-card.json is YOUR document. You own it. You define every field — name, description, skills, tools, provider. It's an A2A-compliant format, so any platform that speaks A2A can read and understand your card.

Think of it as a container where you store everything about yourself: who you are, what you can do, and what context you carry. It's secured by Ed25519 cryptography — you prove ownership with a signature, not a password.

nit enforces publicKey and wallet — these are cryptographic and cannot be faked. Everything else (name, description, skills) is yours to define. But apps may require specific fields before accepting your login, so fill in your card properly.

Branches = Context Per Environment

This is the key insight. Each branch holds a separate version of your agent-card.json:

  • main = your canonical public identity — the full picture of who you are
  • Other branches = environment-specific personas, one per app or platform

Convention: use the app's domain as the branch name — moltbook.com, faam.io, discord.com.

Data in one branch never pollutes another. Your skills, tools, tasks, and description on moltbook.com stay on that branch. Your faam.io branch has its own entirely separate card. This gives you perfect context isolation — just switch branches when you change environments.

You control what each app sees. When you log into an app, it receives the card from your domain branch — not your main card. Each app only sees what you've chosen to share with it.

main              → your full public identity
moltbook.com      → skills & config for Moltbook
faam.io           → skills & config for FAAM
discord.com       → skills & config for Discord
Login = Cryptographic Proof

When you log into an app, you sign a domain-bound payload with your private key. The app verifies it by fetching your public card. No OAuth, no API keys, no human account. Just math.

nit sign --login <domain> does two things automatically:

  1. Switches to the domain's branch (creates it if it doesn't exist)
  2. Generates the signed login payload

When the app verifies your login, it receives your domain-specific card (the branch matching the domain, if pushed) along with a read token to fetch updates. This means the skills and description you set on your faam.io branch are what faam.io sees — not your generic main card.

The domain is baked into the signature — a signature for faam.io is mathematically invalid for discord.com. Cross-app replay is impossible.

Chain Addresses = Derived from Your Identity

Your Ed25519 keypair isn't just for signing — it's the root for chain-native addresses:

  • Solana: base58(ed25519_pubkey) — your public key is your Solana address. Derivable from your public key alone.
  • EVM (Ethereum, BSC, Polygon, Arbitrum, etc.): Derived via HMAC-SHA512("secp256k1", ed25519_seed) → secp256k1 key → keccak256(pubkey). Requires your private key.

One identity, multiple chains. No seed phrases, no extra key management.

bash
nit status   # shows your chain addresses
nit sign-tx --chain evm <hash>   # sign a transaction
nit broadcast --chain evm <tx>   # broadcast to RPC
typescript
import { getWalletAddresses, getSolanaAddress, getEvmAddress, signTx, broadcast } from '@newtype-ai/nit';

const wallets = await getWalletAddresses(nitDir);
// { solana: "7Xf3...", ethereum: "0x1a2b..." }

const sig = await signTx('evm', '0x<32-byte-hash>');
// { chain: 'evm', signature: '0x...', recovery: 0, address: '0x...' }

Important: One Workspace = One Identity

nit is workspace-scoped. Your .nit/ directory IS your identity.

  • If no .nit/ exists, nit sign --login <domain> creates one automatically (init + push + login in one command).
  • Never search for .nit/ in other directories — each workspace has its own identity.
  • Never cd to another directory to run nit commands.

Quick Start

1. Log into an app (creates identity automatically)
bash
nit sign --login moltbook.com

This does everything: generates your keypair, creates your identity, publishes it, switches to the app's branch, and outputs a signed login payload. One command.

If you already have a .nit/ identity in this workspace, it reuses it.

2. Make your card yours

Edit agent-card.json directly — just like editing source code before a git commit. Set your name, description, and skills:

json
{
  "name": "Emil",
  "description": "Research agent specializing in market analysis and web intelligence",
  "version": "1.0.0",
  "skills": [
    {
      "id": "web-research",
      "name": "Web Research",
      "description": "Search, analyze, and synthesize information from the web",
      "tags": ["research", "search", "analysis"],
      "examples": ["Research the latest AI agent frameworks and compare them"]
    }
  ],
  "provider": {
    "organization": "Acme AI Labs",
    "url": "https://acme.ai"
  }
}

Key fields:

FieldWhat to put
nameYour name — who you are
descriptionWhat you do, in one sentence
versionSemantic version of yourself
skillsYour capabilities — curate these per platform
providerWho built or operates you
iconUrlURL to your avatar
documentationUrlURL to your docs

publicKey is managed by nit automatically — injected from your keypair at every commit. You don't need to set or modify it.

Commit:

bash
nit commit -m "Set up identity"
3. Log into more apps
bash
nit sign --login faam.io

Each nit sign --login <domain> auto-creates a branch for that domain and outputs a signed login payload. Commit and push to keep your per-app cards in sync.

Each time you enter a new app:

  1. Log in: nit sign --login <domain> — auto-switches to the domain branch, fetches the app's skill.md from https://<domain>/skill.md into your skills directory, and adds a skill pointer to the card
  2. Play / interact — the SKILL.md contains the app's instructions, API docs, and rules
  3. Commit: nit commit -m "configure for <domain>" — skill pointers are resolved from SKILL.md automatically
  4. Push: nit push

Next time you return to this app, nit sign --login <domain> switches back to your saved context automatically. If the app has updated their skill.md (bumped the version in frontmatter), your local copy auto-updates.

When you switch to a different app, your context switches cleanly — no leftover state, no pollution between environments.

Browser Authentication (OAuth)

Most apps don't support nit-native login yet. For these, use the human's existing browser sessions:

  1. Run nit sign --login <domain> — this generates a SKILL.md with auth instructions for that domain
  2. Open the browser with profile="user" — this attaches to the human's running Chrome via Chrome DevTools MCP, inheriting all existing login sessions (Google, GitHub, X, etc.)
  3. Navigate to the domain. If already logged in (session cookies exist), proceed. If not logged in, ALWAYS sign in immediately — look for OAuth buttons ("Sign in with Google", "Sign in with GitHub", "Sign in with X") and click one without asking the human. The browser is already signed into the OAuth provider. If it redirects back automatically, you're done. If a consent/authorization page appears, click "Authorize" or "Allow".

Rules: Do NOT enter any credentials. Do NOT ask the human whether to sign in — just do it. Do NOT use the default isolated browser profile — you MUST use profile="user" to access existing sessions.

Show full SKILL.md (602 more words)Show less
Handling Re-login Requests

Apps can force all agents to re-login (e.g., after deploying updates). When this happens, any authenticated request returns:

json
{ "error": "App updated — re-login required", "code": "RELOGIN_REQUIRED" }

When you receive this 401, re-run nit sign --login <domain> and POST to the app's login endpoint. This refreshes your token and picks up any updated skill.md.

Skill Pointer Model

Your card can store skills as pointers — just { "id": "skill-name" } — instead of duplicating full skill data inline. At commit time, nit resolves these pointers from SKILL.md files automatically.

SKILL.md is the single source of truth. When a SKILL.md exists with a matching id, its name and description always win over whatever the card has inline. Skills without a matching SKILL.md are kept as-is.

Fresh cards are seeded from project-local skills only. This avoids publishing user-global skills just because they exist on the machine.

nit chooses the write directory for generated skills using local-first detection:

  1. Path-based — if the nit repo lives inside a framework directory (e.g., .claude/, .codex/), use that framework's skills path
  2. Project-local — check for .claude/skills/, .cursor/skills/, .codex/skills/, .windsurf/skills/, .openclaw/workspace/skills/ at project level
  3. Project fallback — use .agents/skills/ inside the workspace

The discovered path is stored in .nit/config under [skills]. When nit sign --login <domain> creates a new branch, it auto-creates a SKILL.md template at this location.

User-global skills are still readable when you explicitly reference them in agent-card.json with a pointer like { "id": "web-research" }. At commit time, nit resolves explicit pointers from project-local and user-global SKILL.md files. If you want generated app skills to live in a shared/global directory, run nit skill dir <path>. Use nit skill dir to inspect the current directory and nit skill dir --reset to return to local-first detection.

Publishing & Hosting

By default, nit pushes to newtype-ai.org — a free, open-source hosting service. Your card is an A2A-compliant document hosted at a public URL.

You can use any nit-compatible server:

bash
# Use a custom server
nit remote set-url origin https://my-server.com

# Check current remote
nit remote

Push main first (establishes identity), then push other branches:

bash
nit push --all

Command Reference

CommandWhat it does
nit initCreate .nit/, generate Ed25519 keypair, initial commit
nit statusYour identity (agent ID, key, URL, chain addresses), branch, uncommitted changes
nit commit -m "msg"Snapshot agent-card.json
nit logCommit history for current branch
nit diff [target]Compare card vs HEAD, another branch, or a commit hash
nit branch [name]List branches, or create a new one
nit branch -d <name>Delete a local branch
nit branch -D <name>Delete local + remote branch
nit checkout <branch>Switch branch (auto-commits uncommitted changes, then restores that branch's card)
nit push [--all]Push current branch (or all) to remote
nit pull [--all]Pull current branch (or all) from remote
nit reset [target]Restore agent-card.json from HEAD or a specific commit
nit show [target]Show commit metadata and card content
nit sign "msg"Sign a message with your Ed25519 key
nit sign --login <domain>Auto-switch to domain branch + generate login payload
nit remoteShow remote URL, agent ID, auth method
nit remote add <name> <url>Add a new remote
nit remote set-url <name> <url>Change a remote's URL
nit sign-tx --chain <c> <data>Sign transaction data (EVM: 32-byte hash, Solana: message bytes)
nit broadcast --chain <c> <tx>Broadcast signed transaction to configured RPC endpoint
nit rpcShow configured RPC endpoints
nit rpc set-url <chain> <url>Set RPC endpoint for a chain
nit auth set <domain> --provider <p> --account <a>Configure OAuth auth for a domain branch (Google, GitHub, X)
nit auth show [domain]Show auth config for branch(es)
nit skill refresh [--source <source>] [--url <url>]Refresh nit SKILL.md
nit skill dir [path|--reset]Show, set, or reset generated skills directory

Programmatic API

nit is also a library. Import it as @newtype-ai/nit:

typescript
import {
  init, commit, branch, checkout, push, status, sign, loginPayload,
  getWalletAddresses, getSolanaAddress, getEvmAddress, loadRawKeyPair,
  signTx, broadcast, rpcSetUrl, rpcInfo,
  authSet, authShow, reset, show, pull,
} from '@newtype-ai/nit';

await init();
const s = await status();
console.log(s.agentId, s.cardUrl);
console.log(s.walletAddresses);  // chain addresses derived from identity
// → { solana: "7Xf3...", ethereum: "0x1a2b..." }

// Log into an app (auto-switches to domain branch)
const payload = await loginPayload('moltbook.com');
// → { agent_id, domain, timestamp, signature }

// Customize card for this app, then commit & push
await commit('configure for moltbook.com');
await push();

// Sign and broadcast transactions
await rpcSetUrl('evm', 'https://eth.llamarpc.com');
const sig = await signTx('evm', '0x<32-byte-keccak256-hash>');
// → { chain: 'evm', signature: '0x...', recovery: 0, address: '0x...' }
await broadcast('evm', '0x<signed-tx-hex>');
// → { chain: 'evm', txHash: '0x...', rpcUrl: 'https://...' }

Full playbook: newtype-ai.org/nit/skill.md

© newtype-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 48 other files (scripts) in the repository root of newtype-ai/nit.

  • SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .gitignore
  • AGENTS.md
  • LICENSE
  • README.md
  • docs/NIT.md
  • docs/NIT_TEST_RESULTS.md
  • docs/PRODUCTION_FLOW_TESTING.md
  • docs/REMOTE_PROTOCOL.md
  • docs/VERSION_CONTROL_FOR_AGENTS_RESEARCH.md
  • docs/how-it-works.md
  • package-lock.json
  • package.json
  • pnpm-lock.yaml
  • scripts/check-skill-version.js
  • … and 32 more

Open the folder on GitHubat commit 9b878ae

Compare with similar skills

Nit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nit this skillnewtype-ai/nit114—~3.6kAutomated safety check: PassMIT
Gpg Multi KeyProrise-cool/Claude-Code-Multi-Agent305—~3.2kAutomated safety check: WarnNone
GitHub AuthRedWoodOG/Hermes-Desktop1773 repos~1.9kAutomated safety check: WarnMIT
Project Session ManagementMicrock/ordinary-claude-skills403—~1.9kAutomated safety check: PassCustom licence
Creating GitHub Issues From Web Researchjeremylongshore/tons-of-skills-marketplace2.8k—~981Automated safety check: PassMIT
Dvcmajiayu000/claude-skill-registry6661 repos~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Gpg Multi Key

    Prorise-cool/Claude-Code-Multi-Agent

    Advanced GPG multi-key management strategies for consultants, CI/CD automation, and enterprise teams.

    305 GitHub stars~3.2k tokensUpdated 22 days ago
    DevOps & CloudAuto-check: warnings
  • GitHub Auth

    RedWoodOG/Hermes-Desktop

    Set up GitHub authentication for the agent using git (universally available) or the gh CLI.

    177 GitHub starsUsed in 3 repos~1.9k tokens
    Backend & APIsAuto-check: warnings
  • Project Session Management

    Microck/ordinary-claude-skills

    Track progress across work sessions using SESSION.md with git checkpoints and concrete next actions.

    403 GitHub stars~1.9k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Creating GitHub Issues From Web Research

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enhances AI assistant's ability to conduct web research and translate findings into actionable github issues.

    2.8k GitHub stars~981 tokensUpdated today
    DevelopmentAuto-check passed
  • Dvc

    majiayu000/claude-skill-registry

    Data Version Control for ML projects. An agent skill from majiayu000/claude-skill-registry.

    666 GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed

Works with

Categories

Questions about Nit

What does Nit do?

Git for agent identity — one identity, any apps. An agent skill from newtype-ai/nit. Nit is an agent skill from newtype-ai/nit.

When should I use Nit?

Nit fits situations like: tasks that involve Cryptography; tasks that involve Git workflow.

How do I install Nit in Claude Code?

Run `npx skills add newtype-ai/nit --skill nit -a claude-code`. Or copy the skill folder (the newtype-ai/nit repository) into .claude/skills/nit in your project. Claude Code loads it when a task matches its description.

How do I install Nit in Codex?

Run `npx skills add newtype-ai/nit --skill nit -a codex`. Or copy the skill folder (the newtype-ai/nit repository) into .agents/skills/nit in your project. Codex loads it when a task matches its description.

Can I use Nit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add newtype-ai/nit --skill nit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nit, .gemini/skills/nit, .github/skills/nit and .opencode/skills/nit in your project.

What does Nit need to run?

Going by SKILL.md and its folder, Nit needs JavaScript for the scripts in its folder and the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.

Does Nit access the network?

SKILL.md names 4 domains. In commands or code: acme.ai and eth.llamarpc.com; the agent is likely to contact these when it follows the instructions. As links in the text: newtype-ai.org and google.github.io. This is read from the text; nothing was executed.

Is Nit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Nit use?

Nit is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nit use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Nit?

Skills that share tags, products or a category with Nit: Gpg Multi Key (Prorise-cool/Claude-Code-Multi-Agent, 305 stars), GitHub Auth (RedWoodOG/Hermes-Desktop, 177 stars), Project Session Management (Microck/ordinary-claude-skills, 403 stars) and Creating GitHub Issues From Web Research (jeremylongshore/tons-of-skills-marketplace, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nit?

newtype-ai (a GitHub organization) maintains it in newtype-ai/nit, which has 114 GitHub stars. The repository was last updated on May 10, 2026.

Source: newtype-ai/nit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.