Mochi

How to Use

Bug reports, feature requests, and usage questions — all welcome.
[email protected]

Last updated: May 2026

1. Before You Start

System Requirements

ItemRequirement
OSWindows 10 / 11
BrowserGoogle Chrome (must be installed)
InternetRequired for login and API communication

Accounts & Keys You'll Need

Mochi AppsTo log in to the app — sign-up available in-app
GoogleRequired if you use Google-based automation
OpenAIAPI Key required for AI summarization
TelegramBot token required for remote control and result delivery

2. Pre_Setting 4 Steps

When you launch the app for the first time, the 'PRE_SETTING' screen appears. Complete all 4 steps in order to unlock recording and agent features.

Step 1 — Detect Chrome

The app automatically searches for Chrome installed on your PC.

If Chrome is found, you'll see 'SUCCESS' and move to the next step. If not, install it from google.com/chrome and restart the app.

Step 2 — Google Login

Sign in to your Google account in the dedicated Chrome profile for automation.

1Click the 'Google Login' button.
2A Chrome window opens with a guide message and the Google login button highlighted.
3Sign in with your Google account.
4Once logged in, the status changes to 'SUCCESS' — you can close the browser.
To keep saved passwords and stay logged in, also sign in to Chrome itself — not just Google.
This is a dedicated automation profile that runs separately from your regular Chrome.

Step 3 — OpenAI API Key

Used by AI to summarize results before sending them to Telegram.

1Click the 'API Key (OpenAI)' button.
2If you already have a key, enter it directly. Otherwise click 'Get OpenAI API'.
3On platform.openai.com, add a payment method and make your first purchase.
4Copy your API Key — it will be filled in automatically.
5After saving, the key is validated and status changes to 'SUCCESS'.
The in-app guide may not match exactly depending on how you navigate the OpenAI site.
The key steps are: add payment info → make first purchase → create and copy your API Key.

Step 4 — Telegram Bot Setup

Used for remote control and receiving results.

1Click the 'Telegram Bot' button.
2Telegram Web opens. The app starts a conversation with BotFather automatically.
3Setup completes on its own — close the browser when done. Status changes to 'SUCCESS'.
4If automatic setup fails, follow the manual steps below.
Manual Telegram Setup
1Create a Bot
In Telegram, search for @BotFather and open a chat.
Send /newbot. Enter a display name (e.g. My Mochi Bot).
Enter a username ending in bot (e.g. my_mochi_bot).
BotFather will send you a Token in this format — copy and save it:
1234567890:ABCDefgh-IjklMNOpqrsTUVwxyz1234567
2Find Your Chat ID
Search for your bot using the '@ prefix' (e.g. @my_mochi_bot) — searching by name alone won't find bots.
'Mobile:' Search directly in the Telegram app  |  'PC:' Install from desktop.telegram.org then search  |  'Web:' Go to web.telegram.org then search
Open the bot chat and send /start.
Open this URL in your browser (replace {TOKEN} with your actual token):
https://api.telegram.org/bot{TOKEN}/getUpdates
In the response, find "chat":{"id": 123456789} — that number is your Chat ID.
3Enter Values Manually

Open user_data/.env in Notepad and add (or update) these two lines:

TELEGRAM_TOKEN=paste_your_token_here
TELEGRAM_CHAT_ID=paste_your_chat_id_here

Save the file and restart the app. The status in 'Telegram Bot' will change to 'SUCCESS'.

Once all 4 steps are complete, all recording and agent features are unlocked.

3. Main Menu Overview

Main Menu Overview
MenuDescription
Log In/OutLogin, sign up, or reset password
My PlanView your plan and upgrade options
User Data FolderOpen the user data folder
How to UseGo to this user manual
PRE_SETTINGPre_Setting (4 steps)
RECORDERRecord automation scenarios
ScenarioManage and edit saved scenarios
KeychainManage saved credentials
AGENTStart the agent
SchedulerSchedule automatic runs
Auto-startStart the agent automatically when the app launches
Background ModeHide the browser window while running
CONSOLE OUTPUTView execution logs and errors
clearClear the console output

4. Recording Scenarios

A scenario is a step-by-step list of instructions for browser automation.

4-1. Recorder Panel

When you open the recorder, a small floating panel appears alongside your automation browser.

Recorder Panel
ButtonWhat it does
RECORD / STOPStart / Stop recording
TEST PLAY / STOPRun the current steps to verify they work
FEEDCollect a list of repeated items
READRead a single value from the page
WAITInsert a manual wait step
Clear AllDelete all steps
OpenLoad an existing scenario file
SaveSave the current steps to a file
EDITEdit step description / set IF Mode

4-2. Basic Recording Flow

RECORD Perform actions FEED / READ STOP Save
1Click 'RECORD' — the button turns red and shows 'STOP'. A red dot (●) appears at the top of the step list. The current Chrome page URL is automatically recorded as a GOTO step.
2Perform actions in Chrome
'CLICK:' Click any clickable element. A popup appears asking for a step description. If you click a link, a second popup asks "Navigate directly to this URL?" — Confirm → GOTO step. Decline → CLICK step.
'Typing:' Type in any input field — it's recorded as a FILL step after 2 seconds.
3Click 'STOP' — recording ends. Review the step list.
FEED and READ buttons only work while RECORD is active. Always press RECORD first.

Automatically Recorded Step Types

ActionStep type
Navigating to a pageGOTO
Clicking a button, link, or elementCLICK
Typing in an input fieldFILL
When the description popup appears, clicking 'Cancel' skips recording that click — it just performs the click without saving a step.

4-3. FEED — Collect a List of Items

FEED collects repeated list items in bulk — news headlines, search results, product listings, etc. You click two items, and the app extracts a CSS selector to grab text and URL of every matching item.

Basic FEED (no anchor)

1While in RECORD mode, click 'FEED'. When asked "Is there a category label?" select 'No'.
2Click the 'first item' → yellow ITEM 1 border appears.
3Click the 'second item' → blue ITEM 2 border appears.
4A popup shows the extracted pattern and match count. Click 'Confirm' → feed step recorded.
Example: Collecting a news list
- Click first item: "Apple reports record Q2 earnings..."
- Click second item: "Tesla unveils new Model Y..."
- Extracted pattern: "ul.news_list > li.news_item" (32 matches)
→ Confirm → feed step recorded

Anchor FEED (with category label)

Use when a page has multiple sections mixed together and you only want items from one specific section — for example, only the news under "Top Stories", or only products under "Best Sellers".

1Click 'FEED' → select 'Yes' for category label.
2Click the 'anchor element' — the section heading or label you want to use as a reference point (e.g. the "Technology" tab, or a "Best Sellers" header). A green ANCHOR border appears around it.
3Click the 'first item below the anchor' → yellow ITEM 1 border.
4Click the 'second item' → blue ITEM 2. Review the anchor info and pattern in the confirmation popup, then click 'Confirm'.

How FEED Runs

If an anchor is set, the app scrolls to find it (up to 60 seconds), then collects only items below it. The {{count}} variable limits how many items are collected (default: 5). Results are summarized by AI based on the Prompt, then sent to Telegram.

ITEM 1 and ITEM 2 must be the same type of element — the pattern is only extracted when they match structurally.
If using an anchor, always click items below it.

4-4. READ — Read a Single Value

'READ' reads the text from one specific element on the page and saves it as a variable. Use it for single data points like a stock price, exchange rate, weather temperature, or inventory count.

1Navigate to the page you want, then click 'READ' while in RECORD mode.
2Click the element you want to read (e.g. a stock price number, a temperature).
3Enter a 'variable name' in the popup (e.g. AAPL Stock Price, Current Temperature).
4Click 'Confirm' → the read step is recorded and READ mode turns off automatically.
Example: Reading a stock price
- Click READ → click the price number → name it "AAPL Stock Price"
- Result: "AAPL Stock Price: 189.30" → sent to Telegram

Example: Reading multiple values in a row
1. goto  — https://finance.example.com
2. read  — "AAPL" (click the price cell)
3. read  — "GOOGL" (click the price cell)
4. read  — "MSFT" (click the price cell)
→ All three stock prices sent to Telegram

FEED vs READ

FEEDREAD
What it collectsA list of repeated itemsOne specific element
Data capturedText + link URLText only
Count limitControlled by {{count}}Always 1
Use casesNews lists, product listingsStock prices, weather

4-5. WAIT — Insert a Wait

Use when a page loads slowly and steps fail because elements aren't ready yet.

1While in RECORD mode, click 'WAIT'.
2Enter the wait time in seconds — integers or decimals work (e.g. 2, 0.5, 3).
3Confirm → a wait step is added at the end of the list.
The app already handles most loading automatically with smart waits. Only add manual waits for pages with unusually long loading spinners.

4-6. Editing & Managing Steps

Clicking a Step — SELECTOR Highlight

Clicking a step in the list highlights the corresponding element in the browser with a blue border (SELECTOR). Use this to verify the right element is targeted.

Edit a Step

Press the 'EDIT' icon to update the description or toggle IF Mode.

IF Mode (for CLICK / FILL steps)

When enabled, the step only runs if the target element exists on the page — otherwise it's skipped. Useful for sites where popups or login states vary between visits.

Delete & Reorder

Click the ✕ button on the right side of a step to delete it. Drag and drop steps up or down to reorder them.

4-7. Using Variables

VariableDescriptionDefault
{{input}}Keyword extracted from your Telegram message
{{count}}Number of items to collect (FEED step)5
GOTO URL:   https://news.google.com/search?q={{input}}
FILL step:  {{input}}
→ Telegram: "Search Tesla news" → input = "Tesla" is substituted automatically

4-8. Keychain — Storing Sensitive Info

Credentials like login usernames and passwords should not be saved directly in a scenario file. Store them in Keychain (user_data/keychain.json) instead. Reference them in a FILL step value like this:

@alias.id    → the username for that account
@alias.pass  → the password for that account

Example: @amazon.id / @amazon.pass → when the scenario runs, the real values are read from keychain.json and filled in automatically.

Most sites stay logged in through saved cookies in Chrome. Use Keychain for sites that require you to log in every time.

4-9. Writing a Prompt

A Prompt is a text instruction that tells AI how to format and summarize collected data before sending it to Telegram. Write it when saving a scenario. If left empty, raw data is sent to Telegram as-is without any AI summarization.

Example 1 — for FEED:

(Response Format)

This is the Amazon bestseller list.

1. Product name, price, etc. | link

2. Product name, price, etc. | link


Example 2 — for READ:

(Response Format)

The current weather is xxxxxxxxxx.

4-10. TEST PLAY — Verify Before Saving

Run through the current steps to make sure everything works before saving.

1Open the scenario and click 'TEST PLAY'.
2Steps run in order — the active step is highlighted in the list.
3A popup shows the result when finished.
4Click 'STOP' at any time to cancel.
Execution results are shown in CONSOLE OUTPUT.

4-11. Saving & Loading

'Save:' Click 'Save' → enter a file name → saved as .json in user_data/scenario/.

'Open:' Click 'Open' → select an existing .json scenario file → continue editing.

4-12. When Recording Fails

ProblemSolution
Clicking doesn't record a stepMake sure RECORD is active (red STOP state). Some sites block click event propagation.
FEED shows only 1 or 0 matchesMake sure ITEM 1 and ITEM 2 are structurally the same type of element. Try clicking a simpler element — for example, just the title text instead of the whole card. If using an anchor, check that it points to the correct section label.
A CLICK step fails during TEST PLAYClick the step and check whether the SELECTOR highlight points to the right element. The site's structure may have changed — delete the step and re-record it.
A bot protection challenge page appearsThe app automatically opens a second browser and attempts to bypass it. Some heavily protected sites cannot be bypassed.
Steps fail because the page loads slowlyAdd a WAIT step just before the failing step (2–5 seconds). Or enable IF Mode on the step so it's skipped when the element isn't found.

5. Agent

Remote Control via Telegram Bot

While the agent is running, send messages to your Telegram bot to trigger scenarios remotely.

Telegram Commands

/startCheck that the bot is connected
mochiList all saved scenarios
natural languageAI picks the right scenario and runs it automatically

Natural Language Examples

Tesla Google News 10
→ AI selects the news scenario, runs it with input="Tesla", count=10

AAPL stock price
→ AI selects the stock price scenario, runs it with input="AAPL"

How It Works

1You send a message to the Telegram bot
2AI (GPT) analyzes the message and picks the most suitable scenario
3The scenario runs automatically
4AI summarizes the results and sends them back to Telegram

Background Mode

Enable 'Background Mode' to run Chrome in the background — no browser window will appear on screen while it works.

6. Scheduler

Run scenarios automatically at scheduled times.

Adding a Schedule

1Open the 'Scheduler' menu.
2Double-click the scenario in the list.
3Set the schedule type for the selected scenario.

Schedule Types

TypeDescriptionSettings
DailyRuns every day at a set timeTime (e.g. 09:00)
WeeklyRuns on specific days of the weekDay(s) + time
IntervalRepeats at a fixed intervalInterval (hours) + start/end time
OnceRuns one time onlyDate + time
If too many schedules are set to run at the same time, some may be skipped.

Managing Schedules

Toggle a schedule on/off to pause it temporarily. Click the delete button to remove a schedule. Results are automatically sent to Telegram after each run.

7. Account

Log In

1The login screen appears when the app starts.
2Enter your Mochi account email and password.
3Click 'Log In'.

Sign Up

1On the login screen, click 'Sign Up'.
2Enter your email, password, and name.

Forgot Password

1On the login screen, click 'Forgot Password'.
2Enter your email — a password reset link will be sent.

Logout

Click the 'Logout' button. Your login info is stored in user_data/settings.json.

Check Your Plan

Go to 'My Plan' to see your current subscription and upgrade options.

8. Tray Icon & Background

[×] CloseMinimizes the app to the system tray — it does not quit.
Tray clickShow or hide the app window.
Right-click → QuitFully close the app.
Only one instance of the app can run at a time. If you try to open it again while running, the existing window comes to the front.

9. File Structure

└── user_data/
    ├── chrome_automation_profile/  # Dedicated Chrome profile
    ├── scenarios/      # Saved scenario JSON files
    ├── .env               # OpenAI API Key, Telegram Token/Chat ID
    ├── cue.json        # Saved schedules
    ├── keychain.json   # Manage saved credentials
    └── settings.json   # App settings and login token
The user_data/ folder contains sensitive information. Do not share it with others.
When installing on another PC, copy and overwrite the user_data/ folder, but note that you may need to log in again due to cookie changes.

10. Troubleshooting

Chrome is not detected

Make sure Chrome is installed. If it's installed in a non-standard location, check whether C:\Program Files\Google\Chrome\Application\chrome.exe exists.

Google login doesn't complete

Sign in to your Google account in the browser — the app detects it automatically once the page navigates after login. If you have two-factor authentication, complete that process as well.

The Telegram bot doesn't respond

Make sure the agent is running — check that the AGENT button is active. Verify that TELEGRAM_TOKEN and TELEGRAM_CHAT_ID are correctly saved in user_data/.env.

'This account is open on another PC' message appears

The app allows only one PC per account. Please disconnect the previous session to continue.