Skip to content

API reference

Full public surface of seshforge 0.2. Runtime auth is always a Telethon StringSession in memory. Disk formats are import/export only.

Client

Subclass of telethon.TelegramClient. All Telethon messaging APIs work unchanged.

Constructors

Method Source
Client(session, api_id, api_hash, **kwargs) None / StringSession / telethon or pyrogram string / Telethon .session path
await Client.create(...) exactly one of tdata, session_file, session_string, pyrogram_session, pyrogram_string
await Client.from_string(...) Telethon or Pyrogram session string (auto-detect)
await Client.from_session_file(...) Telethon SQLite .session
await Client.from_pyrogram_string(...) Pyrogram session string
await Client.from_pyrogram_file(...) Pyrogram SQLite .session
await Client.from_tdata(..., use_current=True) Desktop tdata (UseCurrentSession / CreateNewSession via use_current=False)

Session export

Method Output
session_string / export_session_string() Telethon StringSession
await export_pyrogram_string() Pyrogram session string (needs connected authorized user)
to_session_file(path) Telethon .session
await to_pyrogram_file(path) Pyrogram .session
await to_tdata(path, use_current=..., flag via use_current) Desktop tdata

Telethon session layer (convert)

Function Role
StringSession / SQLiteSession / MemorySession re-exported Telethon sessions
AuthParts dataclass: dc_id, auth_key, address/port, pyro fields
detect_string_kind(s) "telethon" / "pyrogram" / "unknown"
dc_address(dc_id, test_mode=False) (ip, 443)
memory_from_parts(...) build StringSession from dc/auth
session_to_string(session) any Telethon session → string
string_to_session(s) telethon/pyrogram string → StringSession
session_file_to_string(path) Telethon file → string (close-safe)
string_to_session_file(s, path) string → Telethon .session
list_telethon_sessions() SQLiteSession.list_sessions()
auth_parts_from_telethon_string / telethon_string_from_parts pack/unpack
await tdata_to_string(...) / await string_to_tdata(...) Desktop bridge

Pyrogram session layer (pyro_session)

Function Role
looks_like_pyrogram_string format probe
unpack_pyrogram_string / pack_pyrogram_string ↔ AuthParts
pyrogram_string_to_telethon_string pyro → telethon string
telethon_string_to_pyrogram_string(..., api_id, user_id) reverse (needs user_id)
pyrogram_file_to_parts / pyrogram_file_to_string / pyrogram_file_to_pyrogram_string SQLite read
string_to_pyrogram_file(...) write Pyrogram .session
await open_pyrogram(api_id, api_hash, *, session_string\|session_file\|tdata\|telethon_string, user_id=...) real pyrogram.Client on in-memory storage

Pyrogram method style stays on pyrogram.Client from open_pyrogram — not merged onto seshforge.Client.


Desktop / opentele (desktop, api)

Symbol Role
API, APIData, UseCurrentSession, CreateNewSession, LoginFlag re-exports from opentele
load_tdata / save_tdata TDesktop load/save
list_accounts / main_account / accounts_count multi-account
await tdata_to_telethon_string(...) tdata → StringSession
await telethon_to_tdata(...) StringSession → tdata

Supports account_index, passcode, key_file, password, and API presets (API.TelegramDesktop, API.TelegramAndroid, … / Generate()).


Patterns

Multi-worker (Telethon)

from seshforge import Client

client = await Client.from_string(SESSION, API_ID, API_HASH)
await client.send_message("me", "hi")

Pyrogram runtime

from seshforge import open_pyrogram

app = await open_pyrogram(API_ID, API_HASH, session_string=PYRO_STRING)
await app.start()

Convert matrix without live connect

from seshforge import (
    telethon_string_to_pyrogram_string,
    pyrogram_string_to_telethon_string,
    string_to_session_file,
)

pyro = telethon_string_to_pyrogram_string(tl, api_id=API_ID, user_id=123)
tl2 = pyrogram_string_to_telethon_string(pyro)
string_to_session_file(tl2, "out.session")

Errors

Error Cause
ValueError: pass exactly one of... multiple sources
ValueError: user_id required... pyro pack without user id
ValueError: no accounts in tdata empty / wrong tdata
FileNotFoundError missing session file
ValueError: no auth_key corrupt / logged-out session