agentsclimarketplace

Gakido

Skill HappyHackingSpace/skills/skills/gakido

High-performance Python HTTP client with browser impersonation and anti-bot evasion. Use when the user needs to bypass bot detection, impersonate browsers with TLS fingerprinting, make HTTP/2/3 requests, or build web scrapers that evade anti-bot systems.From its SKILL.md

Install
npx -y skills add HappyHackingSpace/skills --skill gakido

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 4 commands, including `pip install gakido` and 3 more.

SKILL.md

3.5 KB, 955 tokens by cl100k_base, as published. Nobody here has run it

Gakido - Browser Impersonation HTTP Client

Gakido (餓鬼道, "the hungry ghost") is a high-performance CPython HTTP client focused on browser impersonation, anti-bot evasion, and speed.

Installation

pip install gakido
pip install gakido[h3]     # with HTTP/3 support
pip install gakido[dev]    # development dependencies

Or with uv:

uv add gakido
uv add gakido[h3]

Features

  • 96 browser profiles (Chrome, Firefox, Safari, Edge, Opera, Brave, Vivaldi, Tor)
  • JA3/Akamai-style TLS fingerprint overrides
  • HTTP/1.1, HTTP/2, and HTTP/3 (QUIC) support
  • Automatic compression (gzip, deflate, brotli)
  • Sync + async clients with connection pooling
  • Multipart uploads
  • WebSocket client
  • Proxy support (HTTP, SOCKS5, SOCKS5H)
  • Retry with exponential backoff

Quick Start

Sync

from gakido import Client

c = Client(impersonate="chrome_120")
r = c.get("https://example.com")
print(r.status_code, r.text[:200])

Async

import asyncio
from gakido.aio import AsyncClient

async def main():
    async with AsyncClient(impersonate="chrome_120") as c:
        r = await c.get("https://httpbin.org/get")
        print(r.status_code)

asyncio.run(main())

TLS Fingerprint Overrides

from gakido import Client, ExtraFingerprints

ja3_str = "771,4866-4867-4865-49196,0-11-10,29,0"
extra_fp = ExtraFingerprints(alpn=["http/1.1"])

c = Client(
    impersonate="chrome_120",
    tls_configuration_options={"ja3_str": ja3_str, "extra_fp": extra_fp},
)
r = c.get("https://tls.browserleaks.com/json")
print(r.json().get("ja3_hash"))

HTTP/3 (QUIC)

import asyncio
from gakido import AsyncClient

async def main():
    async with AsyncClient(
        impersonate="chrome_120",
        http3=True,
        http3_fallback=True,
    ) as c:
        r = await c.get("https://cloudflare.com/cdn-cgi/trace")
        print(f"HTTP/{r.http_version}: {r.status_code}")

asyncio.run(main())

Proxies

from gakido import Client

c = Client()
r = c.get("http://httpbin.org/ip", proxy="http://127.0.0.1:8080")
r = c.get("http://httpbin.org/ip", proxy="socks5://127.0.0.1:1080")

Multipart Upload

files = {"file": ("test.txt", b"hello", "text/plain")}
data = {"foo": "bar"}
with Client() as c:
    r = c.post("https://httpbin.org/post", data=data, files=files)
    print(r.json())

WebSocket

from gakido.websocket import WebSocket

ws = WebSocket.connect("echo.websocket.events", 443, "/", headers=[], tls=True)
ws.send_text("hello")
op, payload = ws.recv()
print(payload.decode(errors="ignore"))
ws.close()

Retry with Backoff

from gakido import Client

client = Client(
    max_retries=3,
    retry_base_delay=0.5,
    retry_max_delay=30.0,
    retry_jitter=True,
)
resp = client.get("http://flaky.example.com")

Notes

  • force_http1=True by default; set force_http1=False to allow ALPN h2
  • http3=True enables QUIC (requires pip install gakido[h3])
  • auto_decompress=True by default

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.