pinecall chat
Talk to the agent in this terminal.
pinecall chat [agent] [--agent <name>] [--file agent.tsx] [--prod] [--as <contact>]
[--state file [--case n]] [--events] [--inspect[=host:port] | --inspect-brk]
With nothing after it: the agent of this directory, served by a process this terminal starts —
the agent's own language's serve entry, which takes no call it did not open — and a written
caller against it in the same terminal. This is rails console: the tools run on this machine,
and --inspect or --inspect-brk opens that process to a debugger, so a breakpoint in a @tool
is reachable (a TypeScript agent's; a Ruby or Python agent runs no Node, and the flag is refused). It works
with no pinecall start up and with three of them, because the caller socket names that process.
Leaving the chat stops it.
A written call runs in the gateway, so a gateway that restarts drops the socket — and keeps the
call. chat says the gateway went away — the call is kept, reconnecting…, dials again naming
the call, and the conversation goes on, history and state whole. It gives up after about a minute.
When the input ends — Ctrl-D, or the end of a pipe — chat hangs up once the agent has answered
every line it was sent, one turn at a time (a minute at most). It hangs up through the gateway,
which ends the call before it closes the socket, so the agent's process stops with nothing live: printf 'hello\n' | pinecall chat prints the answer and leaves a
call that ended caller_hung_up, never one left open.
$ pinecall chat --as +34600000001
‹ hi, I'd like to change my Thursday appointment
› Of course. Could I have your full name and phone number?
$ pinecall chat clinica-norte
The positional is an agent's slug, never a file. Named one, chat starts nothing and is only
the caller's side: a written call at whatever is already holding that slug — your own pinecall start in the other terminal, or a colleague's, in the corner your key reaches. --file is how you
name the class to serve by its path, and it is the same word in every verb that loads a file
(test, simulate, remember, personas, docs, memory); --agent names one agent of a
project of several, by its folder's name, and is required there because a chat talks to one.
--as is who is calling — the id memory files the call under. --state file [--case n] opens the
call in a state: the same goldens file prompt reads. It rides the call's socket (?state=) and
the gateway puts it on the call's call.started, so it opens a call in a colleague's agent too. --events prints the wire instead. --prod talks to production's
agent, while your org lets you act there; nothing said is the sandbox.