Journal, Web, Workspace, Exec & Bot Tools
Business journal for P&L tracking, web search and extraction via Tavily, sandboxed file operations with security protections, system administration via exec tools, and inline bot result sending.
Journal Tools (3)
Trading journal for logging business operations with reasoning, querying performance history, and updating outcomes with P&L. All entries are stored in SQLite.
| Tool | Scope | Description |
|---|---|---|
journal_log | DM only | Log a business operation (trade, gift, middleman, or KOL activity) with assets, amounts, counterparty, platform, and reasoning. Outcome defaults to "pending". |
journal_update | DM only | Update a journal entry with final outcome (profit/loss/neutral/cancelled), P&L in TON and percentage, and transaction hash. Auto-sets closed_at timestamp. |
journal_query | Any | Query journal entries with filters by type, asset, outcome, time period (last N days), and limit. Returns entries with a P&L performance summary including win rate. |
# Log the operation
journal_log:
type: gift
action: sell_gift
asset_from: "Deluxe Heart"
asset_to: "TON"
amount_from: 1
amount_to: 58.5
price_ton: 58.5
counterparty: "@alice"
platform: "telegram_deals"
reasoning: "Sold at 120% of floor - buyer was eager, market cooling"
outcome: pending
# Later, update with final P&L
journal_update:
id: 42
outcome: profit
pnl_ton: 8.5
pnl_pct: 17.0
# Review performance
journal_query:
type: gift
days: 7
# Returns entries + summary: trades count, win rate, total P&LWeb Tools (2)
Web access powered by Tavily. Requires tavily_api_key in config.
| Tool | Description |
|---|---|
web_search | Search the web via Tavily. Returns results with title, URL, content snippet, and relevance score. Supports topic filter: general, news, or finance. Configurable result count. |
web_fetch | Extract readable text content from a URL using Tavily Extract. Only http/https schemes allowed. Content truncated to configurable max length. Returns clean text suitable for analysis. |
# Search for news
web_search:
query: "TON blockchain latest news"
topic: news
count: 5
# Read an article
web_fetch:
url: "https://docs.ton.org/develop/overview"
max_length: 10000Workspace Tools (6)
Sandboxed file operations within ~/.teleton/workspace/. All paths are validated with path traversal protection, recursive URL decode defense, and symlink detection.
| Tool | Scope | Description |
|---|---|---|
workspace_list | Any | List files and directories. Supports subdirectory path, recursive listing, and filter by type (files/directories/all). |
workspace_read | Any | Read a file with utf-8 or base64 encoding. Text extensions read directly; binary files return metadata only unless base64 requested. Max size limit enforced. |
workspace_write | DM only | Write or create a file. Supports utf-8 and base64 encoding, append mode, and auto-creation of parent directories. 50 MB max file size. |
workspace_delete | DM only | Delete a file or directory. Protected files (SOUL.md, MEMORY.md, IDENTITY.md, USER.md, STRATEGY.md, SECURITY.md) cannot be deleted. Recursive option for non-empty directories. |
workspace_info | Any | Get workspace structure overview with directory sizes, file counts, total usage percentage, and security notes about protected locations. |
workspace_rename | DM only | Rename or move a file within workspace. Creates parent directories if needed. Optional overwrite flag for existing destinations. |
~/.teleton/workspace/
SOUL.md # Personality guidelines (protected)
MEMORY.md # Persistent memory (protected)
IDENTITY.md # Identity info (protected)
STRATEGY.md # Business strategy (protected)
memory/ # Daily logs and notes
downloads/ # Downloaded media
uploads/ # Files to send
temp/ # Temporary files
memes/ # Meme collectionProtected system files outside workspace (config.yaml, wallet.json, telegram_session.txt, memory.db) are never accessible through workspace tools.
Memory Tools (2)
Persistent agent memory stored in SQLite. Used to remember facts, preferences, and context across conversations.
| Tool | Scope | Description |
|---|---|---|
memory_write | DM only | Write a fact or piece of information to the agent's long-term memory store. |
memory_read | Any | Read stored memory entries, optionally filtered by topic or keyword. |
Exec / System Administration Tools (4)
Server administration tools for running commands, installing packages, managing services, and checking system status. All exec tools share a configurable scope via capabilities.exec.scope in config.
Linux only. Exec tools are available on Linux hosts only. They are disabled by default and require explicit enablement in the capabilities config section.
| Tool | Scope | Description | Parameters |
|---|---|---|---|
exec_run | Configurable (capabilities.exec.scope) | Execute a bash command on the host system. Output is captured and returned. | command (string) |
exec_install | Configurable (capabilities.exec.scope) | Install one or more packages using the specified package manager. | manager (apt | pip | npm | docker), packages (string) |
exec_service | Configurable (capabilities.exec.scope) | Manage a systemd service by name. | action (start | stop | restart | status | enable | disable), name (string) |
exec_status | Configurable (capabilities.exec.scope) | Get server status: disk usage, RAM, CPU load, uptime, and OS info. No parameters. | — |
# Run a command
exec_run:
command: "df -h"
# Install packages
exec_install:
manager: apt
packages: "curl wget git"
# Manage a service
exec_service:
action: restart
name: nginx
# Server overview (no params)
exec_status: {}Scope and allowlist are configured under capabilities.exec in config.yaml. See Config Schema for details.
Bot / Inline Mode Tools (1)
Tools for plugins that operate in Telegram inline bot mode. Requires telegram.bot_username to be configured.
| Tool | Scope | Description | Parameters |
|---|---|---|---|
bot_inline_send | Always | Send an inline bot result to a user querying the bot inline. Used by plugins that handle inline queries to return results with optional colored buttons. | plugin (string — plugin namespace), query (string — the inline query text), resultIndex (number, optional — index of the result variant to send) |
Requires bot. bot_inline_send requires telegram.bot_token and telegram.bot_username to be set in config. The bot must be configured for inline mode via @BotFather.