client-lifecycle

Manages 3x-ui panel client onboarding, renewals, reporting, and cleanup operations.

5|3|Updated Apr 11, 2026
One-click install
npx skills add https://github.com/pyworkload/3x-ui-mcp --skill client-lifecycle-pyworkload
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: client-lifecycle
Source: https://github.com/pyworkload/3x-ui-mcp/tree/main/skills/client-lifecycle
Command: npx skills add https://github.com/pyworkload/3x-ui-mcp --skill client-lifecycle-pyworkload

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing VPN proxy users on a 3x-ui panel involves error-prone details: millisecond timestamps, byte-versus-gigabyte quotas, negative expiry trials, and destructive cleanup tools whose exact semantics are easy to get wrong. This Skill encodes the correct procedures for the full client lifecycle so accounts are provisioned, renewed, reported on, and removed without breaking credentials or deleting the wrong users. ## Core Features & Use Cases - Onboarding and handover: Create email-keyed clients with quotas, expiry, IP limits, and subscription IDs, then distribute access via subscription URLs or raw inbound links. - Bulk renewals and adjustments: Extend days or gigabytes across many clients with delta-based bulk tools, including correct handling of unstarted trials and skipped-client reasons. - Reporting and cleanup: Page through clients server-side, find unused or over-shared accounts, and safely run depleted or orphan client deletion after enumerating what will be removed. - Use Case: A reseller needs to renew 50 subscriptions by 30 days and 50 GB, then clean up expired accounts. The Skill applies bulk adjustments, reports which clients were skipped and why, and lists depleted clients for confirmation before deletion. ## Quick Start Ask the agent to create a new 3x-ui client named alice on inbound 7 with a 100 GB quota and 30-day expiry, then return her subscription link.

Frequently Asked Questions about client-lifecycle

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a client on a 3x-ui panel with an expiry date?▼

Call add_client with the inbound IDs, a unique email label, total_gb in gigabytes, and expiry_time as a Unix timestamp in milliseconds. A seconds-precision timestamp lands in 1970 and expires the client immediately, so always compute from now in milliseconds.

How do I renew multiple 3x-ui clients at once?▼

Use bulk_adjust_clients with a list of emails and add_days or add_gb deltas, which may be negative. Clients with unlimited expiry or traffic are skipped with reasons, so read the skipped list back rather than reporting a clean success.

What does a negative expiryTime mean in 3x-ui?▼

A negative expiryTime stores a duration rather than a date, creating a start-after-first-use trial. The panel converts it to an absolute deadline of now plus the duration on the client's first traffic tick, so a 7-day trial starts whenever the user first connects.

Which clients does delete_depleted_clients actually remove?▼

It deletes only clients with reset equal to zero whose quota is exhausted or whose expiry has passed. Clients on a reset cycle, unlimited clients, and unstarted trials are never touched, so cyclical accounts survive cleanup runs.

Should I use a subscription link or a raw inbound link for users?▼

Prefer the subscription URL from get_subscription_links, because the user's app refreshes it and picks up new inbounds or host changes automatically. Raw links from get_all_inbound_links suit one-off sharing, and both carry credentials so treat them as secrets.

Why did updating a client break the user's app?▼

Rebuilding a client with delete_client plus add_client issues a new UUID, which invalidates the user's existing configuration. Use update_client instead, which overlays only the fields passed and preserves the UUID and all other settings.