Skip to main content

Agent-side SDK + CLI for the Handshake Prompt Protocol

Project description

handshake-prompt-agent

Agent-side SDK + CLI for the Handshake Prompt Protocol (HPP). Zero external dependencies (Python stdlib only).

Install

pip install handshake-prompt-agent

CLI

# Extract credentials from a handshake prompt
handshake-prompt-agent parse-prompt --prompt "$(pbpaste)"

# Get current schema + values
handshake-prompt-agent get-context --sid <sid> --token <token> --base <url>

# Submit field values
handshake-prompt-agent action --sid <sid> --token <token> --base <url> \
    --data '{"name":"Alice","age":30}'

# Get incremental changes since last submit
handshake-prompt-agent get-diff --sid <sid> --token <token> --base <url> \
    --since "2026-06-23T10:22:00+08:00"

# Extend the token/session for a long-running task (server may reject or cap it)
handshake-prompt-agent extend --sid <sid> --token <token> --base <url> \
    --extra-seconds 1800

Programmatic API

from handshake_prompt_agent import HandshakeAgent, parse_prompt

# Parse user-pasted prompt
creds = parse_prompt(prompt_text)
agent = HandshakeAgent(
    sid=creds['sessionId'],
    token=creds['token'],
    base_url=creds['baseUrl'],
)

# Read current state (call this BEFORE every action!)
state = agent.get_context()
print(state['schema'])     # field definitions
print(state['context'])    # current values + who filled (user/ai/empty/user_edit)
print(state['missing'])    # required-but-empty keys

# Apply values
result = agent.action({
    'name':  'Alice',
    'email': 'alice@example.com',
    'age':   30,
})
print(result['applied'])   # fields successfully written
print(result['rejected'])  # fields blocked (e.g. user already filled)
print(result['context'])   # full state snapshot after the action

# Long task? Ask the server to extend the session.
# The server policy decides whether this is allowed.
extension = agent.extend(extra_seconds=1800)
print(extension['expiresIn'])

Skill integration

This package is intended to be used inside an Agent skill (e.g. Codemaker, Claude, Cursor). A typical skill file:

# my-handshake-skill SKILL.md

Triggered when user pastes a message containing `sessionId:` and `token:`.

Workflow:
1. parse-prompt to extract credentials
2. get-context to read current schema + values
3. reason out field values based on user's request
4. action to submit values

Always call get-context BEFORE each action to see latest state
(user may have edited fields manually).

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

handshake_prompt_agent-0.2.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

handshake_prompt_agent-0.2.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file handshake_prompt_agent-0.2.0.tar.gz.

File metadata

  • Download URL: handshake_prompt_agent-0.2.0.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for handshake_prompt_agent-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6511b03202d2bce058958dafb4ccff7c56237773d67a2b81b05f3b2b8ff975f6
MD5 854b887ea53c200b3989f26d93b1dc58
BLAKE2b-256 aeb1ca8856e66973ec9d4587bd9239c129587bc667c622e1198379b34e24a71e

See more details on using hashes here.

File details

Details for the file handshake_prompt_agent-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for handshake_prompt_agent-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8c1489c563ae800375b080e906adc94229325dcf58ec58b6adaaf09f34e39aa
MD5 3124cb0f6d327c239494e3107ef42980
BLAKE2b-256 7e6346ae10f7a1e2ea47091e308a27396590b2d8b76337de72fe00613676f974

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page