
Security News
Agent Baseline Publishes Security Reference Architecture for Software Factories
Agent Baseline’s new reference architecture shows how to secure software factories with four boundaries enforced outside the AI agent.
kickpython
Advanced tools
A Python wrapper for the Kick.com API that provides easy access to Kick.com's public API endpoints and WebSocket chat functionality.
pip install kickpython
from kickpython import KickAPI
# For OAuth 2.1 authentication (recommended)
api = KickAPI(
client_id="your_client_id",
client_secret="your_client_secret",
redirect_uri="your_redirect_uri",
db_path="kick_tokens.db" # Optional, defaults to kick_tokens.db
)
# With proxy support
api = KickAPI(
client_id="your_client_id",
client_secret="your_client_secret",
redirect_uri="your_redirect_uri",
proxy="proxy.example.com:8080",
proxy_auth="username:password"
)
# Generate authorization URL with PKCE
auth_data = api.get_auth_url([
"user:read",
"channel:read",
"channel:write",
"chat:write",
"events:subscribe"
])
# The auth URL for user authorization
auth_url = auth_data["auth_url"]
code_verifier = auth_data["code_verifier"]
state = auth_data["state"]
# After user authorization, exchange the code for tokens
token_data = await api.exchange_code(code, code_verifier)
# Tokens are automatically stored and managed
await api.start_token_refresh() # Start automatic token refresh
# Send a chat message
await api.post_chat(
channel_id="123",
content="Hello from the bot!"
)
# Define a message handler
async def message_handler(message):
username = message['sender_username']
content = message['content']
badges = message['badges']
chat_id = message['chat_id']
print(f"{username}: {content}")
# Add the message handler
api.add_message_handler(message_handler)
# Connect to a channel's chat
await api.connect_to_chatroom("channel_username")
# Or connect using chatroom ID
await api.connect_to_chatroom("123456")
# Get channel information
channels = await api.get_channels()
# Update channel information
await api.update_channel(
channel_id="123",
category_id="456",
stream_title="New Stream Title"
)
# Get list of categories
categories = await api.get_categories()
# Search for specific categories
results = await api.get_categories(query="games")
# Get specific category
category = await api.get_category(category_id="123")
See examples/oauth.py for a complete Flask-based OAuth implementation that includes:
See examples/listen_all_channels.py for a chat bot example that:
The API methods throw exceptions for error conditions:
ValueError for invalid input parametersException for API errors with error messagesExample:
try:
await api.post_chat(channel_id="123", content="")
except ValueError as e:
print("Invalid parameters:", e)
except Exception as e:
print("API error:", e)
user:read - Access user informationchannel:read - Access channel informationchannel:write - Update channel metadatachat:write - Send chat messagesevents:subscribe - Subscribe to channel eventsContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
Python wrapper for Kick.com API
The pypi package kickpython receives a total of 35 weekly downloads. As such, kickpython popularity was classified as not popular.
We found that kickpython demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Agent Baseline’s new reference architecture shows how to secure software factories with four boundaries enforced outside the AI agent.

Security News
arXiv now limits authors to two submissions a month as AI slop overwhelms moderators, delays good papers, and sparks debate over applying the limit to everyone.

Research
/Security News
A new GhostAction wave hits hundreds of GitHub repos, expanding CI/CD secret theft to cloud and AI credentials in source code and git history.