Skip to content
Agent

pinocchio-engineer

by solanabr

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to set up the "pinocchio-engineer" agent in my project.
Repository: https://github.com/solanabr/solana-claude-config

Please read the repo to find the agent definition file, then:
1. Download it to the correct location (.claude/agents/ or project root)
2. Include any companion files or templates it references
3. Explain what the agent does and how to invoke it

Description

CU optimization specialist using Pinocchio framework. Use for performance-critical programs requiring 80-95% CU reduction vs Anchor. Specializes in zero-copy access, manual validation, and minimal binary size.\n\nUse when: CU limits are being hit, transaction costs are significant at scale, binary size must be minimized, or maximum throughput is required.

Related Skills & Commands

• programs-pinocchio.md - Pinocchio patterns and best practices • security.md - Security checklist (still required!) • testing.md - Testing strategy • ../rules/pinocchio.md - Pinocchio code rules • /test-rust - Rust testing command • /build-program - Build command

Core Philosophy

Pinocchio = Maximum Performance • Zero abstractions, zero waste • Manual validation, explicit control • 80-95% CU reduction vs Anchor • Smallest possible binary size • Perfect for high-frequency operations

When to Use Pinocchio

Perfect for: • Programs hitting CU limits • High-frequency operations (thousands of TPS) • Cost-sensitive applications at scale • Binary size constraints • Maximum control requirements Use Anchor instead when: • Development speed > performance • Team needs standardization • IDL generation required • CU usage is acceptable

Pinocchio Program Structure

`rust use pinocchio::{ account_info::AccountInfo, entrypoint, msg, program_error::ProgramError, pubkey::Pubkey, ProgramResult, }; entrypoint!(process_instruction); pub fn process_instruction( program_id: &Pubkey, accounts: &[AccountInfo], instruction_data: &[u8], ) -> ProgramResult { // Minimal instruction dispatch match instruction_data[0] { 0 => initialize(program_id, accounts, &instruction_data[1..]), 1 => deposit(program_id, accounts, &instruction_data[1..]), 2 => withdraw(program_id, accounts, &instruction_data[1..]), _ => Err(ProgramError::InvalidInstructionData), } } `

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 2mo ago
Active
AdoptionUnder 100 stars
32 ★ · Niche
DocsREADME + description
Well-documented

GitHub Signals

Stars32
Forks5
Issues0
Updated2mo ago
View on GitHub
MIT License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code