Skip to main content

Unofficial Python client for juicychat.ai

Project description

JuicyChat Client

Unofficial Python client for JuicyChat. It handles login, encrypted request/response payloads, and provides a CLI for interactive chat, character search, user discovery, personas, and tasks.

Features

  • Authentication — Login with user number and password
  • Characters — Search characters by term, tags, gender, and sort order; get character details
  • Chat — Send messages and stream replies; list, clear, and delete chat history
  • Users — Search users, view profiles, follow/unfollow
  • Creator Rankings — Browse ranked creators (monthly, all-time, new creators)
  • Personas — Create personas and attach them to character chats
  • Tasks — View task list, check progress, claim task rewards
  • Content Filter — Toggle NSFW content filter
  • Crypto — AES-encrypted API payloads; key/IV from env or auto-discovered from the site bundle
  • Bundle Discovery — Extract crypto keys, app version, and API endpoints from the site JS bundle

Requirements

  • Python 3.11+
  • cryptography, python-dotenv, requests (see pyproject.toml)

Installation

pip install juicychat-client

Configuration

Credentials and crypto can be set via environment variables or a .env file.

Variable Description
JUICYCHAT_USERNUMBER Account user number
JUICYCHAT_PASSWORD Account password
JUICYCHAT_KEY 16-byte AES key (UTF-8) for request/response encryption
JUICYCHAT_IV 16-byte AES IV (UTF-8)

If JUICYCHAT_KEY and JUICYCHAT_IV are not set, the client will fetch the site's JS bundle and extract the current key/IV automatically. For stability, setting them in .env is recommended once you have them.

Usage

CLI

Run the interactive menu (login uses env or prompts for user number/password):

juicychat
# or
python -m juicychat.cli

Menu options (available options depend on whether a conversation is selected):

  • Select Conversation — Pick from existing chat relations
  • Continue Conversation — View history and send messages in the selected chat
  • Clear Conversation — Clear message history for the selected chat
  • Delete Conversation — Remove the selected chat relation
  • Character Detail — View details for the selected character
  • Search Characters — Search and select a character
  • Get Task List — View available tasks
  • Create Persona — Create a new persona (title, name, description, gender, age)
  • User Info — View current user details
  • Toggle Content Filter — Toggle the NSFW content filter on/off
  • Search Users — Search for users and view their profiles

Library

import os
from dotenv import load_dotenv
from juicychat.client import JuicyChatClient, Gender, SortName

load_dotenv()

client = JuicyChatClient(
    user_number=os.getenv("JUICYCHAT_USERNUMBER"),
    password=os.getenv("JUICYCHAT_PASSWORD"),
    key=os.getenv("JUICYCHAT_KEY"),
    iv=os.getenv("JUICYCHAT_IV"),
)

info = client.get_user_info()
characters = client.search_characters("elf", gender=Gender.FEMALE, sort_name=SortName.POPULAR)
relations = client.get_chat_relations()
reply = client.send_chat_message(character_id="...", message="Hello")

Client Methods

User

  • get_user_info() — Current user details
  • get_other_user_info(user_id) — Another user's profile
  • get_user_coins() — Coin balance
  • get_user_progress() — Task/level progress
  • get_user_checkin_prompt() — Daily check-in prompt
  • get_user_claim_coupon() — Claim available coupon
  • update_content_filter(allow_nsfw) — Toggle NSFW content filter

Characters

  • search_characters(search_content, character_tags, gender, sort_name, page_no, page_size) — Search characters
  • get_character_list_and_config(...) — Characters with site config
  • get_character_detail(character_id) — Full character details

Chat

  • get_chat_relations(page_no, page_size) — List chat relations
  • get_chat_config(character_id) — Chat configuration for a character
  • get_chat_messages(character_id, chat_id) — Message history
  • send_chat_message(character_id, message, request_type) — Send message and get streamed reply
  • clear_chat_history(character_id) — Clear chat messages
  • delete_chat_relation(character_id) — Remove a chat relation

Personas

  • get_personas(page_no, page_size) — List personas
  • create_persona(title, name, description, gender, age) — Create a persona
  • set_persona(character_id, persona_id) — Attach a persona to a chat

Tasks

  • get_tasks() — List available tasks
  • get_task_progress(task_id) — Progress for a specific task
  • claim_task_reward(task_id) — Claim a task reward

Social

  • search_users(search_content, page_no, page_size) — Search users
  • follow_user(user_id) / unfollow_user(user_id) — Follow or unfollow a user
  • get_ranked_creators(ranking_type, page_no, page_size) — Creator leaderboard

Other

  • get_launch_data() — App launch/config data

Enums

  • SortNameEDITOR_CHOICE, FOLLOWING, NEW, POPULAR, RECENT, TRENDING
  • GenderALL, FEMALE, MALE, NON_BINARY, TRANS_MALE, TRANS_FEMALE
  • TaskIdDAILY_CHECK_IN, SEND_10_MESSAGES, CHAT_3_CHARACTERS, DAILY_FOLLOWING, GENERATE_IMAGE
  • RankingTypeALL_CREATORS_MONTHLY, NEW_CREATORS_MONTHLY, ALL_CREATORS_ALL_TIME, NEW_CREATORS_ALL_TIME

Standalone Tools

Bundle discovery — extract crypto keys, app version, and API endpoints:

python -m juicychat.discover

Decrypt response data — decrypt an encrypted API response from a file or stdin:

python -m juicychat.crypto response.txt
# or
echo "..." | python -m juicychat.crypto

Notes

  • Unofficial — This project is not affiliated with JuicyChat. The API may change; key/IV discovery depends on the current web bundle.
  • Credentials — Store user number, password, and key/IV securely.

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

juicychat_client-0.2.19.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

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

juicychat_client-0.2.19-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file juicychat_client-0.2.19.tar.gz.

File metadata

  • Download URL: juicychat_client-0.2.19.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for juicychat_client-0.2.19.tar.gz
Algorithm Hash digest
SHA256 f856fde0a8768c8e5665a9d58b64c0e8f0afab2a6366c9994c6268f2120716af
MD5 d0606acb13419a29a6c2d158690cd383
BLAKE2b-256 9f08c5fcb3040f0c26753738de437036efeaf3937cf644aa938d78841d8c8bc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for juicychat_client-0.2.19.tar.gz:

Publisher: publish-to-pypi.yaml on kirby900/juicychat-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file juicychat_client-0.2.19-py3-none-any.whl.

File metadata

File hashes

Hashes for juicychat_client-0.2.19-py3-none-any.whl
Algorithm Hash digest
SHA256 37c0ab1abbb11e3701be3065affce4a12d2dcd202c370ebf62f4b120acb13f7f
MD5 8a6597d2838a56e24c7febfe7226451f
BLAKE2b-256 7cede425c922e0bbdfe4a64925760e055e768904712e73ad4507608d715f25c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for juicychat_client-0.2.19-py3-none-any.whl:

Publisher: publish-to-pypi.yaml on kirby900/juicychat-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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