GramForge Documentation
GramForge is a desktop application for managing multiple Telegram accounts from a single workspace. It provides automation modules for broadcasting, account warmup, audience parsing, mass inviting, and more — all running locally on your machine with no cloud dependency.
Getting Started
GramForge ships as a self-contained executable. No Python installation or additional setup is required.
Installation
- Download the latest release for your platform (Windows / macOS / Linux).
- Run the executable. GramForge will start a local server and open the UI automatically in your default browser at
http://localhost:8000. - Import accounts — click Upload Session in the Account Manager to add your
.sessionfiles ortdataarchives. - Run a spam check on all accounts to see their current Telegram status before starting any operations.
Importing sessions
GramForge supports two import formats:
| Format | How to import | Notes |
|---|---|---|
| .session + .json | Drag both files onto the upload area or use "Upload Session" | Recommended. The .json sidecar carries API credentials. |
| tdata archive (.zip) | Use the "tdata" tab in the upload modal | GramForge converts tdata to a session automatically. |
Account Manager
The Account Manager is the central hub for all your Telegram sessions. It shows every imported account with its live status, geo, role, folder, and metadata.
Account statuses
| Status | Meaning |
|---|---|
| Free | Account is healthy and can be used in any module. |
| Flood | Temporarily flood-waited by Telegram. Retry after the wait expires. |
| SpamBlock | Account is spam-limited. Restricted from messaging non-contacts. |
| PermSpamBlock | Permanent spam restriction. Account cannot message strangers. |
| Banned | Account is permanently banned by Telegram. |
| Revoked | Session token expired or manually revoked. Re-import required. |
| Freeze | Account is temporarily frozen by Telegram. |
Folders
Accounts are organized into three folders: Work (active), Archive (inactive), and Banned (auto-moved on ban detection). You can reassign any account to a different folder manually from the account table.
Roles
Roles are custom tags (e.g. "Sender", "Parser", "Reserve") that you create in the Roles section. Each account can be assigned one role. Modules support filtering by role so you can quickly select the right set of accounts for each task.
Account actions
Right-click or use the row action menu to: check spam status, open the account in a built-in Telegram Web browser, edit metadata (note, geo, age), move to a folder, or delete the session.
Broadcast
Broadcast lets you send a message (or series of messages) from selected accounts to a list of chats. It supports texts, images, videos, voice messages, and video circles.
Message types
| Type | Description |
|---|---|
| Text | Plain text message. Supports Telegram markdown/HTML formatting and spintax ({Hello|Hi}). |
| Image / Video | Upload media files. Each message slot can have its own caption. |
| Voice | Upload .ogg or .mp3 voice files — sent as Telegram voice messages. |
| Video circle | Upload short video clips — sent as round video messages. |
Target modes
- Folders — broadcast to all dialogs inside a Telegram folder of the sending account.
- Groups — broadcast to public groups from an automated list (group automation).
- Spam list — broadcast to a custom list of usernames / group links imported from a file.
Key settings
| Setting | Default | Description |
|---|---|---|
| Delay min / max | 3 / 8 sec | Random pause between each send to avoid flood bans. |
| Randomize chats | Off | Shuffle the target chat list before sending. |
| Show skipped logs | On | Log entries for chats that were skipped (already messaged, etc.). |
Warmup
Warmup simulates organic Telegram activity on your accounts — reactions, comments, joins, message sends — to build up account history and reduce spam-block risk on new sessions.
Actions
| Action | Description |
|---|---|
| Reactions | Leave emoji reactions on channel posts. Pick from the full Telegram reaction set. |
| Comments | Post comments under channel messages. Provide a list of comment lines; one is picked per action. |
| Join chats | Automatically join public channels/groups from a provided list. |
| Send messages | Send messages to contacts or bots on a configured schedule. |
| Reply to messages | Reply to recent messages in chats with a configured response list. |
| Mention users | Mention users in small chats — only targets chats below a configurable member limit. |
| AI phrases | Generate contextual comments/replies using Groq AI instead of a static list. Requires Groq API key. |
Delay configuration
Each action type has its own independent delay range. Enable or disable per-action delays to fine-tune the pacing. Reaction delays are separate from join delays to allow faster channel joining without triggering rate limits.
Cheat
Cheat provides metric-boosting tools. Unlike Warmup (which runs continuously), Cheat operations run once against a specific target.
Sub-modes
| Mode | What it does |
|---|---|
| Views | Boost view count on specific posts. Provide a post URL or "last N posts" mode. |
| Reactions | Add a chosen emoji reaction to a post from all selected accounts. |
| Join | Mass-join a target channel/group using selected accounts. |
| Bot | Send a command (e.g. /start) to a bot from all selected accounts. |
Each sub-mode supports a configurable inter-action delay and can target either a specific URL or the N most recent posts in a channel.
Parsing
Parsing extracts data from Telegram channels and groups and saves it as a .csv file for use in Inviter, Broadcast, or external tools.
Parse modes
| Mode | Output | Use case |
|---|---|---|
| Messages | Post text, date, author, views, reactions per post | Content analysis, export channel history |
| Members | User ID, username, first/last name, phone (if accessible) | Build invite lists, audience research |
Filtering options
- Date range filter for messages.
- Deduplicate members across multiple parsed sources.
- Skip bots / deleted accounts from member lists.
- Filter by activity (only users who posted recently).
Results are shown in-app as a scrollable table and can be exported to CSV with one click. The CSV is compatible with the Inviter module's file import.
Inviter
The Inviter module adds users from a list (typically a CSV from Parsing) into a Telegram group or channel.
Invite modes
| Mode | Description |
|---|---|
| Regular | Each selected account invites a batch of users per request. Useful when accounts are group members. |
| Admin | Designate one account as the group admin. It performs all invites using a dedicated admin session, which raises the per-request limit. |
Key settings
| Setting | Description |
|---|---|
| Target group | Link or username of the destination group/channel. |
| Users per request (min/max) | How many users each account adds per API call. Default: 2/2. |
| Delay (min/max) | Pause between batches. Default: 15–30 sec. |
| User source | Upload a CSV file from Parsing, or paste usernames directly. |
Auto-Reply
Auto-Reply monitors incoming private messages on selected accounts and sends automatic responses. Useful for managing funnels, bots, or accounts that receive high message volume.
Reply types
| Type | Description |
|---|---|
| Text | Static text response. Supports spintax for variation. |
| Voice | Sends a pre-uploaded voice file as the reply. |
| Video circle | Sends a pre-uploaded round video as the reply. |
| AI (Groq) | Generates a contextual reply using the Groq LLM API. Requires a Groq API key set in Settings. |
Rules
You can configure trigger rules — reply only when the incoming message contains a specific keyword, or reply to any message. Multiple rules can be stacked per account group.
AI Voice Clips
For AI mode, you can also provide a library of voice clips. When the AI determines a voice reply is appropriate, it picks a clip from the library instead of sending text.
Stories
The Stories module posts a photo or video story to selected accounts simultaneously.
How to use
- Select the accounts you want to post from.
- Upload a photo (JPG/PNG) or video (MP4) in the media upload area. A preview appears immediately.
- Optionally add a caption.
- Click Post Stories. GramForge sends the story from each selected account in sequence with a small delay.
Results are logged in the console panel with per-account success/fail status.
Copy Channel
Copy Channel mirrors posts from one or more source channels into your own channel automatically, in real-time or on a schedule.
How it works
- Configure a source channel (link or username) and a destination channel (must be owned by one of your accounts).
- The copying account must be an admin of the destination channel with post permissions.
- New posts in the source channel are forwarded (or re-uploaded) to the destination within seconds.
- Optional: strip original channel signature, prepend/append custom text to captions.
History view
The History tab shows a galaxy-style visualisation of all past copy sessions — accounts as nodes, channels as edges — with per-session stats (total posts copied, errors).
Roles & Tags
Roles allow you to categorize accounts for quick selection across all modules. A role is a simple label (e.g. "Warmer", "Sender", "Parser") that you assign to one or more accounts.
Working with roles
- Create roles in Settings → Roles.
- Assign a role to an account from the Account Manager row actions or in bulk via Bulk Actions.
- In every module, use the Role Picker dropdown to instantly select all accounts with a given role.
Account metadata fields
| Field | Description |
|---|---|
| Role | Custom category label. |
| Note | Free-text note visible in the account table. |
| Geo | Country code derived from the phone number or set manually. |
| Folder | Work / Archive / Banned. |
| Age (months) | Account registration age for filtering. |
Proxy & Tools
The Tools section bundles several system-level utilities.
Proxy management
Assign SOCKS5 or HTTP proxies to individual accounts or account groups. GramForge routes all Telegram API traffic for that account through the configured proxy. Proxies are stored per-session and persist across restarts.
Account customization
Bulk-update profile fields across selected accounts: first name, last name, bio, and profile photo. Supports spintax in text fields for per-account variation.
Cleanup
Mass-leave channels and groups from selected accounts. Useful for recycling accounts after a campaign without manually clearing each session's dialogs.
Browser
Open any account in a built-in Telegram Web browser window. The account's session is used directly — no QR scan or phone number needed. Click the browser icon in the Account Manager row to launch.
Scheduler (Cron)
The Cron module lets you schedule any module task to run at a specific time or on a repeating interval without keeping the UI open.
Creating a scheduled task
- Configure the task in its module (e.g. Broadcast) as you normally would.
- Instead of clicking Start, click Schedule to open the Cron dialog.
- Set the date/time and optionally a repeat interval.
- Save the cron job. It will appear in the Scheduler tab.
GramForge's background server handles scheduled tasks — the UI does not need to remain open for cron jobs to fire.
Security
GramForge is designed as a local-only application. Here is how your data is protected:
| Protection | Detail |
|---|---|
| Local-only server | The HTTP server binds to 127.0.0.1 only. External machines cannot reach the UI or API. |
| Request token | Every API call requires a secret token generated at startup. Requests without it are rejected with 401. |
| CORS restriction | API endpoints only accept requests from localhost or 127.0.0.1 — not from external origins. |
| Sessions stay local | Your .session files are stored on your disk and never transmitted to any external server. |
| Telethon MTProto | All Telegram communication uses the official MTProto protocol via Telethon — the same layer as official clients. |
GramForge Documentation — 2025. Back to landing