pinecallDocs
Running an agent / pinecall chat

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.

Terminal
$ 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.