Agent skill

Sablier Vesting

by LeoYeAI in LeoYeAI/openclaw-master-skills

Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched).

MITAuto-check passed

Install Sablier Vesting

skills CLI
$ npx skills add LeoYeAI/openclaw-master-skills --skill sablier-vesting -a claude-code

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

GitHub CLI
$ gh skill install LeoYeAI/openclaw-master-skills sablier-vesting --agent claude-code

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

Manual copy
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/token-vesting .claude/skills/sablier-vesting && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

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

Facts

Skill name
sablier-vesting
GitHub stars
2.2k
Token cost
~4.5k tokens
SKILL.md length
1,130 words
Files
2
Skills in repo
1,235
Repo updated
First seen
Licence
MIT

At a glance

Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched).

  • Works in 2 steps: Approve the Token → Create the Stream
  • SKILL.md covers When To Use This Skill, Security: Private Key and…, Core Concepts and Deployment Addresses (Lockup…, plus 6 more sections
  • Calls bun; reaches eth-mainnet.g.alchemy.com; needs ETH_PRIVATE_KEY and PRIVATE_KEY

What it does

Sablier Vesting is an agent skill from LeoYeAI/openclaw-master-skills. Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched).

Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).

The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.

Example prompts

  • “/sablier-vesting”

Requirements

  • A credential in ETH_PRIVATE_KEY
  • A credential in PRIVATE_KEY

Workflow steps

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

  1. Approve the Token
  2. Create the Stream

What it can do on your machine

Read from SKILL.md and the folder at commit e5199b5. 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

    Shell commands in SKILL.md call:

    • bun

    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:

    • eth-mainnet.g.alchemy.com

    Also links to:

    • docs.sablier.com
    • github.com

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ETH_PRIVATE_KEY
    • PRIVATE_KEY

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

Context cost

Sablier Vesting loads about 4.5k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,130 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 1,130 words, ~4,452 tokens.

Download SKILL.mdSave it as .claude/skills/sablier-vesting/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
sablier-vesting
description
Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched).
homepage
https://docs.sablier.com
disable-model-invocation
true

Sablier Vesting Skill

You are an AI agent that creates and manages token vesting streams on EVM-compatible blockchains using the Sablier Lockup v3.0 protocol. Sablier is a token streaming protocol where the creator locks up ERC-20 tokens in a smart contract and the recipient's allocation increases every second until the stream ends.

When To Use This Skill

Use this skill when the user asks you to:

  • Create a token vesting stream (linear, dynamic, or tranched)
  • Lock tokens in a vesting contract
  • Set up employee vesting, investor vesting, or airdrop distribution
  • Stream tokens to a recipient over time
  • Cancel, withdraw from, or manage an existing Sablier stream

Security: Private Key and Secret Handling

These rules are mandatory. Follow them in every interaction.

Agent Behavioral Constraints
  1. NEVER ask the user to paste a private key into the chat. If the user volunteers a raw private key in a message, warn them immediately that it may be logged and recommend they rotate it.
  2. NEVER embed a raw private key in any command you execute. Always use an environment variable reference ($PRIVATE_KEY, $ETH_PRIVATE_KEY) or a secure signing method instead.
  3. NEVER log, echo, or print a private key or mnemonic to stdout, a file, or any other output.
  4. Always recommend the safest available signing method, in this order of preference:
    • Hardware wallet: --ledger or --trezor flags (most secure, no key exposure)
    • Foundry keystore (cast wallet import): --account <name> (encrypted on disk, password-prompted at sign time)
    • Environment variable: --private-key $ETH_PRIVATE_KEY (key stays in the shell environment, never appears in command text)
    • Raw --private-key 0x...: Discourage this. Only acceptable for throwaway testnets where the key holds no real value.
Setting Up Secure Signing

Option 1 -- Hardware wallet (recommended for mainnet):

No setup required. Just add --ledger or --trezor to any cast send / forge script command.

Option 2 -- Foundry encrypted keystore (recommended default):

bash
# Import a key once (you'll be prompted for the private key and an encryption password)
cast wallet import my-deployer --interactive

# Then use it in any command
cast send ... --account my-deployer

The key is stored encrypted at ~/.foundry/keystores/my-deployer. You only type your password at sign time; the private key is never exposed in shell history or process arguments.

Option 3 -- Environment variable (acceptable):

bash
# Export in your shell session (not in a file that gets committed)
export ETH_PRIVATE_KEY=0x...

# Reference the variable (the key value never appears in the command itself)
cast send ... --private-key $ETH_PRIVATE_KEY
RPC URL Handling

RPC URLs may contain API keys. Follow the same principles:

bash
# Set once in your shell
export ETH_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/<YOUR_KEY>

# cast and forge automatically read ETH_RPC_URL, so --rpc-url can be omitted
cast send <ADDRESS> "approve(address,uint256)" ...

Alternatively, configure the RPC in foundry.toml under [rpc_endpoints].


Core Concepts

Stream Types

Sablier Lockup v3.0 uses a single unified SablierLockup contract per chain. There are three stream models:

ModelBest ForFunction (durations)Function (timestamps)
LinearConstant-rate vesting, salariescreateWithDurationsLLcreateWithTimestampsLL
DynamicExponential curves, custom curvescreateWithDurationsLDcreateWithTimestampsLD
TranchedPeriodic unlocks (monthly, quarterly)createWithDurationsLTcreateWithTimestampsLT
Stream Shapes
  • Linear: Constant payment rate (identity function). Good for salaries and simple vesting.
  • Cliff Unlock: No tokens available before the cliff; linear streaming after. Great for employee vesting (e.g. 1-year cliff + 3 years linear).
  • Initial Unlock: Immediate release of some tokens + linear vesting for the rest. Good for signing bonuses.
  • Exponential: Recipient gets increasingly more tokens over time. Good for airdrops to incentivize long-term holding.
  • Unlock in Steps: Traditional periodic unlocks (weekly/monthly/yearly). Good for investor vesting.
  • Unlock Monthly: Tokens unlock on the same day every month. Good for salaries and ESOPs.
  • Backweighted: Little vests early, large chunks towards the end (e.g. 10%/20%/30%/40% over 4 years).
  • Timelock: All tokens locked until a specific date, then fully released.

Deployment Addresses (Lockup v3.0)

All chains use the same contract pattern. Key mainnet deployments:

ChainSablierLockupSablierBatchLockup
Ethereum0xcF8ce57fa442ba50aCbC57147a62aD03873FfA730x0636d83b184d65c242c43de6aad10535bfb9d45a
Arbitrum0xF12AbfB041b5064b839Ca56638cDB62fEA712Db50xf094baa1b754f54d8f282bc79a74bd76aff29d25
Base0xe261b366f231b12fcb58d6bbd71e57faee82431d0x8882549b29dfed283738918d90b5f6e2ab0baeb6
OP Mainnet0xe2620fB20fC9De61CD207d921691F4eE9d0fffd00xf3aBc38b5e0f372716F9bc00fC9994cbd5A8e6FC
Polygon0x1E901b0E05A78C011D6D4cfFdBdb28a42A1c32EF0x3395Db92edb3a992E4F0eC1dA203C92D5075b845
BNB Chain0x06bd1Ec1d80acc45ba332f79B08d2d9e24240C740xFEd01907959CD5d470F438daad232a99cAffe67f
Avalanche0x7e146250Ed5CCCC6Ada924D456947556902acaFD0x7125669bFbCA422bE806d62B6b21E42ED0D78494
Gnosis0x87f87Eb0b59421D1b2Df7301037e9239321766810xb778B396dD6f3a770C4B4AE7b0983345b231C16C
Scroll0xcb60a39942CD5D1c2a1C8aBBEd99C43A73dF3f8d0xa57C667E78BA165e8f09899fdE4e8C974C2dD000
Sonic0x763Cfb7DF1D1BFe50e35E295688b3Df789D2feBB0x84A865542640B24301F1C8A8C60Eb098a7e1df9b
Monad0x003F5393F4836f710d492AD98D89F5BFCCF1C9620x4FCACf614E456728CaEa87f475bd78EC3550E20B
Berachain0xC37B51a3c3Be55f0B34Fbd8Bd1F30cFF6d2514080x35860B173573CbDB7a14dE5F9fBB7489c57a5727

For testnets, see: https://docs.sablier.com/guides/lockup/deployments


Step-by-Step: Creating a Vesting Stream with cast

The preferred method is using Foundry's cast CLI tool which the agent has access to.

Prerequisites
  1. The sender must have the ERC-20 tokens in their wallet.
  2. The sender must approve the SablierLockup contract to spend the tokens.
  3. You need: RPC URL, a signing method (keystore, hardware wallet, or env var), token address, recipient address.
  4. Ask the user which signing method they prefer before constructing commands. Default to --account <KEYSTORE_NAME> if they have one set up, or --ledger for mainnet. See the Security section above.
Show full SKILL.md (450 more words)Show less
Step 1: Approve the Token
bash
cast send <TOKEN_ADDRESS> \
  "approve(address,uint256)" \
  <SABLIER_LOCKUP_ADDRESS> <AMOUNT_IN_WEI> \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Step 2: Create the Stream
Option A: Linear Stream (createWithDurationsLL)

This creates a linear vesting stream. The CreateWithDurations struct is ABI-encoded as a tuple.

Parameters for createWithDurationsLL:

solidity
function createWithDurationsLL(
    Lockup.CreateWithDurations calldata params,
    LockupLinear.UnlockAmounts calldata unlockAmounts,
    LockupLinear.Durations calldata durations
) external returns (uint256 streamId);

Where:

  • Lockup.CreateWithDurations = (address sender, address recipient, uint128 depositAmount, address token, bool cancelable, bool transferable, string shape)
  • LockupLinear.UnlockAmounts = (uint128 start, uint128 cliff)
  • LockupLinear.Durations = (uint40 cliff, uint40 total)

Example: 1-year linear vesting of 10,000 tokens with no cliff:

bash
# Calculate values
# 10000 tokens with 18 decimals = 10000000000000000000000
# 52 weeks in seconds = 31449600

cast send <SABLIER_LOCKUP_ADDRESS> \
  "createWithDurationsLL((address,address,uint128,address,bool,bool,string),(uint128,uint128),(uint40,uint40))" \
  "(<SENDER>,<RECIPIENT>,10000000000000000000000,<TOKEN>,true,true,)" \
  "(0,0)" \
  "(0,31449600)" \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY

Example: 4-year vesting with 1-year cliff:

bash
# cliff = 365 days = 31536000 seconds
# total = 4 years = 126144000 seconds

cast send <SABLIER_LOCKUP_ADDRESS> \
  "createWithDurationsLL((address,address,uint128,address,bool,bool,string),(uint128,uint128),(uint40,uint40))" \
  "(<SENDER>,<RECIPIENT>,<AMOUNT_WEI>,<TOKEN>,true,true,)" \
  "(0,0)" \
  "(31536000,126144000)" \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY

Example: With initial unlock of 1000 tokens and cliff unlock of 2000 tokens (out of 10000 total):

bash
cast send <SABLIER_LOCKUP_ADDRESS> \
  "createWithDurationsLL((address,address,uint128,address,bool,bool,string),(uint128,uint128),(uint40,uint40))" \
  "(<SENDER>,<RECIPIENT>,10000000000000000000000,<TOKEN>,true,true,)" \
  "(1000000000000000000000,2000000000000000000000)" \
  "(31536000,126144000)" \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Option B: Tranched Stream (createWithDurationsLT)

For periodic unlocks (monthly, quarterly, etc.).

solidity
function createWithDurationsLT(
    Lockup.CreateWithDurations calldata params,
    LockupTranched.TrancheWithDuration[] calldata tranches
) external returns (uint256 streamId);

Where TrancheWithDuration = (uint128 amount, uint40 duration)

Example: 4 quarterly unlocks of 2500 tokens each:

bash
# Each quarter ≈ 13 weeks = 7862400 seconds

cast send <SABLIER_LOCKUP_ADDRESS> \
  "createWithDurationsLT((address,address,uint128,address,bool,bool,string),(uint128,uint40)[])" \
  "(<SENDER>,<RECIPIENT>,10000000000000000000000,<TOKEN>,true,true,)" \
  "[(2500000000000000000000,7862400),(2500000000000000000000,7862400),(2500000000000000000000,7862400),(2500000000000000000000,7862400)]" \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Option C: Dynamic Stream (createWithTimestampsLD)

For exponential curves and custom distribution.

solidity
function createWithTimestampsLD(
    Lockup.CreateWithTimestamps calldata params,
    LockupDynamic.Segment[] calldata segments
) external returns (uint256 streamId);

Where:

  • Lockup.CreateWithTimestamps = (address sender, address recipient, uint128 depositAmount, address token, bool cancelable, bool transferable, (uint40,uint40) timestamps, string shape)
  • Lockup.Timestamps = (uint40 start, uint40 end)
  • LockupDynamic.Segment = (uint128 amount, UD2x18 exponent, uint40 timestamp)

Example: Exponential stream (2 segments):

bash
# Get current timestamp
CURRENT_TS=$(cast block latest --rpc-url <RPC_URL> -f timestamp)
START_TS=$((CURRENT_TS + 100))
MID_TS=$((CURRENT_TS + 2419200))   # +4 weeks
END_TS=$((CURRENT_TS + 31449600))  # +52 weeks

cast send <SABLIER_LOCKUP_ADDRESS> \
  "createWithTimestampsLD((address,address,uint128,address,bool,bool,(uint40,uint40),string),(uint128,uint64,uint40)[])" \
  "(<SENDER>,<RECIPIENT>,<DEPOSIT_AMOUNT>,<TOKEN>,true,true,($START_TS,$END_TS),)" \
  "[(<AMOUNT_0>,1000000000000000000,$MID_TS),(<AMOUNT_1>,3140000000000000000,$END_TS)]" \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY

Note: The exponent in segments uses UD2x18 format (18 decimals). 1e18 = linear, 2e18 = quadratic, 3.14e18 = steeper curve.


Managing Existing Streams

Check Stream Status
bash
cast call <SABLIER_LOCKUP_ADDRESS> "statusOf(uint256)(uint8)" <STREAM_ID> --rpc-url <RPC_URL>

Status values: 0=PENDING, 1=STREAMING, 2=SETTLED, 3=CANCELED, 4=DEPLETED

Check Withdrawable Amount
bash
cast call <SABLIER_LOCKUP_ADDRESS> "withdrawableAmountOf(uint256)(uint128)" <STREAM_ID> --rpc-url <RPC_URL>
Withdraw from Stream (recipient)
bash
# First, calculate the minimum fee
FEE=$(cast call <SABLIER_LOCKUP_ADDRESS> "calculateMinFeeWei(uint256)(uint256)" <STREAM_ID> --rpc-url <RPC_URL>)

cast send <SABLIER_LOCKUP_ADDRESS> \
  "withdrawMax(uint256,address)" \
  <STREAM_ID> <RECIPIENT_ADDRESS> \
  --value $FEE \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Cancel Stream (sender only)
bash
cast send <SABLIER_LOCKUP_ADDRESS> \
  "cancel(uint256)" \
  <STREAM_ID> \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Renounce Cancelability (sender only, irreversible)
bash
cast send <SABLIER_LOCKUP_ADDRESS> \
  "renounce(uint256)" \
  <STREAM_ID> \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME>
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY
Check Streamed Amount
bash
cast call <SABLIER_LOCKUP_ADDRESS> "streamedAmountOf(uint256)(uint128)" <STREAM_ID> --rpc-url <RPC_URL>
Get Recipient of Stream
bash
cast call <SABLIER_LOCKUP_ADDRESS> "getRecipient(uint256)(address)" <STREAM_ID> --rpc-url <RPC_URL>

Using Forge Scripts (Alternative)

If the user prefers Solidity scripts over raw cast calls, you can create a Forge script. Reference the @sablier/lockup npm package.

Install dependency
bash
forge init sablier-vesting && cd sablier-vesting
bun add @sablier/lockup
Example Forge Script
solidity
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity >=0.8.22;

import { Script } from "forge-std/Script.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { ISablierLockup } from "@sablier/lockup/src/interfaces/ISablierLockup.sol";
import { Lockup } from "@sablier/lockup/src/types/Lockup.sol";
import { LockupLinear } from "@sablier/lockup/src/types/LockupLinear.sol";

contract CreateVestingStream is Script {
    function run(
        address lockupAddress,
        address tokenAddress,
        address recipient,
        uint128 depositAmount,
        uint40 cliffDuration,
        uint40 totalDuration
    ) external {
        ISablierLockup lockup = ISablierLockup(lockupAddress);
        IERC20 token = IERC20(tokenAddress);

        vm.startBroadcast();

        // Approve Sablier to spend tokens
        token.approve(lockupAddress, depositAmount);

        // Build params
        Lockup.CreateWithDurations memory params;
        params.sender = msg.sender;
        params.recipient = recipient;
        params.depositAmount = depositAmount;
        params.token = token;
        params.cancelable = true;
        params.transferable = true;

        LockupLinear.UnlockAmounts memory unlockAmounts = LockupLinear.UnlockAmounts({ start: 0, cliff: 0 });
        LockupLinear.Durations memory durations = LockupLinear.Durations({
            cliff: cliffDuration,
            total: totalDuration
        });

        uint256 streamId = lockup.createWithDurationsLL(params, unlockAmounts, durations);

        vm.stopBroadcast();
    }
}

Run with:

bash
forge script script/CreateVestingStream.s.sol \
  --sig "run(address,address,address,uint128,uint40,uint40)" \
  <LOCKUP_ADDRESS> <TOKEN_ADDRESS> <RECIPIENT> <AMOUNT_WEI> <CLIFF_SECONDS> <TOTAL_SECONDS> \
  --rpc-url <RPC_URL> \
  --account <KEYSTORE_NAME> \
  --broadcast
# Or: --ledger | --trezor | --private-key $ETH_PRIVATE_KEY

Important Notes

  • Token decimals matter: Always convert human-readable amounts to wei (e.g., for 18-decimal tokens: amount * 1e18). Use cast --to-wei <amount> to convert.
  • Approve first: The sender MUST approve the SablierLockup contract to spend the ERC-20 tokens before creating a stream.
  • Cancelable vs Non-cancelable: If cancelable is true, the sender can cancel and reclaim unvested tokens. Set to false for trustless vesting.
  • Transferable: If true, the recipient can transfer the stream NFT to another address.
  • Gas costs: Linear streams are cheapest (~169k gas). Tranched streams cost more with more tranches (~300k for 4 tranches). Dynamic streams vary by segment count.
  • Stream NFT: Each stream is represented as an ERC-721 NFT owned by the recipient. The NFT can be transferred if the stream is transferable.
  • Minimum Solidity version: v0.8.22 for the Lockup contracts.
  • Sablier UI: Streams can be viewed and managed at https://app.sablier.com

Quick Reference: Duration Conversions

DurationSeconds
1 day86400
1 week604800
30 days2592000
90 days (quarter)7776000
180 days (half year)15552000
365 days (1 year)31536000
730 days (2 years)63072000
1095 days (3 years)94608000
1461 days (4 years)126230400

Resources

© LeoYeAI, 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 1 other file in skills/token-vesting of LeoYeAI/openclaw-master-skills.

  • SKILL.md
  • _meta.json

Open the folder on GitHubat commit e5199b5

Compare with similar skills

Sablier Vesting 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.

Sablier Vesting compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sablier Vesting this skillLeoYeAI/openclaw-master-skills2.2k—~4.5kAutomated safety check: PassMIT
Cuda Streamspytorch/pytorch104k—~796Automated safety check: PassCustom licence
Monitor Streamruvnet/ruflo74k—~188Automated safety check: PassMIT
Streaming HTMLthedaviddias/Front-End-Checklist74k—~553Automated safety check: PassMIT
Streamingalsk1992/CloddsBot3k—~810Automated safety check: PassMIT
Assistant UI Streamingcompozy/compozy2.8k—~813Automated safety check: PassMIT

Similar skills

  • Cuda Streams

    pytorch/pytorch

    Manage tensor lifetimes across CUDA streams and decide whether recordstream is avoidable.

    104k GitHub stars~796 tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Monitor Stream

    ruvnet/ruflo

    Stream live swarm events using the Monitor tool for real-time observability

    74k GitHub stars~188 tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Streaming HTML

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing server-side rendering setup, Next.js App Router pages, or Node.js HTTP handlers to verify that HTML is streamed incrementally rather than buffered until…

    74k GitHub stars~553 tokensUpdated 4 days ago
    Backend & APIsAuto-check passed
  • Streaming

    alsk1992/CloddsBot

    Response streaming configuration and real-time output. An agent skill from alsk1992/CloddsBot.

    3k GitHub stars~810 tokensUpdated 8 days ago
    Backend & APIsAuto-check passed
  • Assistant UI Streaming

    compozy/compozy

    Guide for assistant-stream package and streaming protocols. An agent skill from compozy/compozy.

    2.8k GitHub stars~813 tokensUpdated today
    DevelopmentAuto-check passed
  • Guides agents to interactively discover customer requirements for live, bidirectional multi-agent AI systems that process continuous streams of multimodal data for real-time technical guidance and…

    21k GitHub stars~2.3k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from LeoYeAI/openclaw-master-skills

All 1,200 skills in this repo
  • DevOps Pipeline Management

    LeoYeAI/openclaw-master-skills

    Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Auto-check: notes
  • Feishu Document Collaboration

    LeoYeAI/openclaw-master-skills

    Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.

    2.2k GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Files Memory System

    LeoYeAI/openclaw-master-skills

    Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.

    2.2k GitHub stars~3.8k tokensUpdated 2 mo ago
    Auto-check passed
  • GEO-Claw AI Visibility Agent

    LeoYeAI/openclaw-master-skills

    Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.

    2.2k GitHub stars~4.7k tokensUpdated 2 mo ago
    Auto-check passed
  • Google Workspace CLI

    LeoYeAI/openclaw-master-skills

    Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.

    2.2k GitHub stars~2.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • HealthFit Health Advisors

    LeoYeAI/openclaw-master-skills

    Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.

    2.2k GitHub stars~4.4k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Sablier Vesting

What does Sablier Vesting do?

Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched). Sablier Vesting is an agent skill from LeoYeAI/openclaw-master-skills. Create and manage token vesting streams using the Sablier Lockup protocol (linear, dynamic, tranched).

How do I install Sablier Vesting in Claude Code?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill sablier-vesting -a claude-code`. Or copy the skill folder (skills/token-vesting in LeoYeAI/openclaw-master-skills) into .claude/skills/sablier-vesting in your project. Claude Code loads it when a task matches its description.

How do I install Sablier Vesting in Codex?

Run `npx skills add LeoYeAI/openclaw-master-skills --skill sablier-vesting -a codex`. Or copy the skill folder (skills/token-vesting in LeoYeAI/openclaw-master-skills) into .agents/skills/sablier-vesting in your project. Codex loads it when a task matches its description.

Can I use Sablier Vesting 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 LeoYeAI/openclaw-master-skills --skill sablier-vesting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sablier-vesting, .gemini/skills/sablier-vesting, .github/skills/sablier-vesting and .opencode/skills/sablier-vesting in your project.

What does Sablier Vesting need to run?

Going by SKILL.md and its folder, Sablier Vesting needs the command-line tools its instructions call (bun) and credentials named ETH_PRIVATE_KEY and PRIVATE_KEY. Our summary lists: A credential in ETH_PRIVATE_KEY; A credential in PRIVATE_KEY.

Does Sablier Vesting access the network?

SKILL.md names 3 domains. In commands or code: eth-mainnet.g.alchemy.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.sablier.com and github.com. This is read from the text; nothing was executed.

Is Sablier Vesting 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. Review the folder before installing.

What licence does Sablier Vesting use?

Sablier Vesting is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sablier Vesting use?

About 4.5k tokens (SKILL.md is roughly 18k 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 Sablier Vesting?

Skills that share tags, products or a category with Sablier Vesting: Cuda Streams (pytorch/pytorch, 104k stars), Monitor Stream (ruvnet/ruflo, 74k stars), Streaming HTML (thedaviddias/Front-End-Checklist, 74k stars) and Streaming (alsk1992/CloddsBot, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sablier Vesting?

LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.

Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.