Tools
Phosphor registers 50 tools for the agent that drives it, and every one is listed here in five groups: read, propose, chart and trade surface, agents, and other. Reads change nothing. Propose tools return a proposal id and a simulation, and cannot approve or refuse anything: a move your rules let run without a click runs at once, and every other move waits for your click or is refused. Every call the app accepts, read or write, is written to the audit log, except skill and whats_new, which the agent's own connection answers from a file on this Mac. A worker an agent spawns is an analyst: the tools marked lead only are not registered for it at all, so there is nothing to talk it into. The agent in the chat does not get ten of them: start, composition, log_tail, set_theme, profile_learned and the five agent tools; its instructions already carry what start says.
Read#
| Tool | Does |
|---|---|
start |
Where you are and what you can do: the live state, the click threshold, which tab you are looking at, and the index of every capability with the tool that performs it |
wallet |
Everything held: one row per balance inside NEAR Intents and one for the Hyperliquid account, with quantity, price, value and share. Once your vault has moved to Touch ID it also shows spendable, the allowance a move spends from, and savings, the vault, which moves only through a top-up you confirm with Touch ID, see Money |
deposit |
Opens the deposit card in the chat for one asset on one network and starts watching for the money. The agent gets the first six and last four characters of the address, never the whole. Lead only |
composition |
Stablecoin composition by issuer and chain: shares, freezable share, unclassified holdings |
policy_show |
The current policy as plain-English sentences |
log_tail |
The most recent audit log lines, newest first |
proposal_status |
Where one money move is right now, as the one object the card in the window draws: the stage and its label, what is being waited on, how long it has been going, the amounts and both pockets, every transaction hash, and an error with a sentence when something went wrong. The deposit address 1Click made for the move comes as its first six and last four characters; the card in the window shows it whole |
proposals |
Recent money moves, newest first, each the same object proposal_status returns; a kind filter and a limit up to 50. For "show me my last deposit" without asking anyone for an id. Lead only |
diagnose |
Everything about one money move in one call, for "why is it not there yet": the view, the row's own audit lines, and what the router and the venue say about it. Lead only |
swap_assets |
What can be swapped inside your balance, the coins you hold first: name, network, price, what you hold of it, and whether anyone offers a price now. Files nothing |
swap_quote |
What a swap would get right now: the amount in, the amount out expected, the least you would get, the fee and the time it takes, or a sentence saying why there is no quote. Once your vault has moved, a swap bigger than the allowance comes back with topUp, the shortfall that moves from the vault first, behind your Touch ID. Files nothing |
swap_check |
One swap read again now: what the swap service says, whether the coin left your balance or came back, and what you hold. For a swap that failed, stalled or looks wrong. Lead only |
chart_read |
The chart as it stands: product, timeframe, price, indicators, levels, drawings, and what is stale |
chart_scan |
Several timeframes at once without moving the chart: price, change, range, ATR, trend |
chart_snapshot |
A small picture of the chart as you see it, beside a one-line digest. Lead only |
market_search |
Finds a market to chart from anything a person would say ("btc", "PEPE-USD") |
research |
Headlines and summaries about a market from a fixed list of crypto publishers. This read leaves the machine |
chain_address |
What an address holds and has done on one network, with an explorer link. This read leaves the machine |
chain_transactions |
The most recent transactions of an address on one network, at most 25 |
chain_transaction |
One transaction by hash: fields, fee, block, confirmations, explorer link |
intents_activity |
What an account has moved inside NEAR Intents: deposits, withdrawals, swap legs and sends. With no account named it reads the one your moves spend from: the allowance once your vault has moved |
web_read |
One web page as quoted text, read by the app, only at an address a web search in this chat returned or you gave. This read leaves the machine |
chart_batch |
Many chart questions and drawings in one call: candles, pivots, levels, regime, ATR and more |
trade_read |
The whole trading situation: account health, positions with liquidation distance, orders, fills, plans |
trade_batch |
Several trading reads in one round trip: account, positions, orders, fills, plans, market, venue health |
Propose#
Every propose tool goes through the policy engine, see Policy. Three of them wait for your click at any size. The rest run on their own under the click threshold, except a move from an agent started outside Phosphor that you have not allowed, a move from an agent that read text from outside Phosphor (a web page, the news, a chain read, or words a marked agent wrote), a move the agent asked for on its own after a move did not go through, and a swap of a coin the app cannot price.
| Tool | Does |
|---|---|
propose_swap |
Swaps one token for another inside NEAR Intents; nothing moves on any chain. Takes "all" or an exact amount, and the app sets the least you will get from its own quote. Click above the threshold |
propose_send |
Sends a balance to somebody, paid out on a chain or credited inside NEAR Intents. Always a click, see Money |
propose_hl_deposit |
Funds the Hyperliquid account from the intents balance. Click above the threshold |
propose_hl_withdraw |
Brings collateral back from Hyperliquid into the intents balance. Always a click, and refused while any position is open |
propose_trade |
Arms a plan on Hyperliquid perpetuals, see Trading. Click above the threshold |
propose_trade_change |
Changes an armed plan: a new stop or target, cancel, or close. One change per call |
propose_policy_change |
Proposes a change to your rules. Always a click |
Chart and trade surface#
These change what you see and move no money.
| Tool | Does |
|---|---|
chart_draw |
Draws on the chart in one call: view, indicators, levels, marks, lines and zones, or clears its own work. What it draws stays, across a quit, until it is cleared. Lead only |
chart_layout |
Puts one to four charts side by side. Lead only |
show |
Draws something that already exists as a card in the chat: a proposal, a transaction on a named network, an open position, or the deposit card. Moves no money and asks no permission. Lead only |
trade_focus |
Points the trading surface at one market; the chart follows. Lead only |
trade_highlight |
Points at one row or chart object (a position, an order, a plan, a level) and says why, in a note you read beside it. Lead only |
trade_overlay |
Turns one chart overlay on or off: entry, liquidation, the plan stop wall, working stops, targets, orders, fills. Lead only |
trade_clear |
Removes what the agent put on the trading surface. Lead only |
trade_plan |
Draws a plan on the chart as an idea under Orders. No authority until propose_trade arms it. Lead only |
Agents#
Several agents can drive at once, see Connect an agent.
| Tool | Does |
|---|---|
agent_roster |
Who else is driving right now: name, role, who spawned them, when they attached, calls made |
agent_board |
The team board: one-line posts agents write for each other and for you. Data, never authority |
agent_post |
Writes one line to the board: a claim before starting a piece of work, or a finding |
agent_jobs |
Every worker in the app and what it has come back with; stop ends one by its id |
agent_spawn |
Starts a worker on a written brief. A worker reads, measures, draws and posts, and has no propose tools. Three at once at most, across the whole app. Lead only |
A post, a brief or a report written by an agent that had read text from outside Phosphor marks
the agent that reads it, and so does the name an agent started outside Phosphor gave itself, on
agent_roster, until you allow it. log_tail marks whoever reads it. See
Policy.
Other#
| Tool | Does |
|---|---|
skill |
Loads an enabled skill: the operator's guidance for one kind of work. Guidance and data, never a wider surface |
switch |
Moves the window between Basic, Pro, Trade and Vault. Every switch is audited. Lead only |
set_theme |
Recolours the window: five named slots on its one dark colourway. Lead only |
profile_learned |
Records one concept the agent explained to you, so the next session does not explain it again. Not on the chat's surface. One recorded by an agent that read text from outside Phosphor, or by an agent started outside Phosphor that you have not allowed, is kept out of later chats. Lead only |
whats_new |
What changed in this version of Phosphor, or since the version you had, from the app's own changelog. Answered from a file on this Mac, so it is not audited |
Web search and page reading#
Claude in the chat also holds its vendor's own web search, and nothing else beyond Phosphor's
tools. Pages are read by web_read, and only at an address that came back in a web search in that
chat or that you gave, word for word, never one the agent wrote: a page cannot get your figures
sent out in an address. Grok holds no web search, so it reads a page from a link you give. After a
search, a page, a read that carries a stranger's words (research, the chain reads), or any answer
that quotes a venue's own words other than a refusal Phosphor knows (an error from 1Click, the
solver relay, Hyperliquid or a chain's node), every move the agent proposes in that chat waits for
your click, whatever the size, see Policy. A refusal Phosphor knows
reaches the agent in Phosphor's own words. An agent in your terminal brings whatever tools its own
setup gives it, and the app cannot see them.
What is not here#
There is no approve, no refuse, no kill, no dismiss and no execute tool, and a test holds
the live list to that. No tool reads a private key or the recovery phrase. No tool moves money
into the wallet: deposits go through the card in the window, see Money. The
source of truth for this list is src/mcp.ts in the
repository; Security says what the
surface does and does not guarantee.