nc://chorepilot

v0.1.0Pinned
ThomSharktools/nodecode-chorepilot: ChorePilot's house devices and chore board as Nodecode tools, through the user's own ChorePilot server. - a rewrite of WestWaters/ChorePilot (Apache-2.0), credited to WestWaters43a580b· 9 Nov1 commit
test2 filescell.lisp19.5 KBLICENSE11.1 KBmcp.lisp13.6 KB

nodecode-chorepilot

ChorePilot: the household's devices and chore board as tools, through the user's own ChorePilot server. A Nodecode rewrite of WestWaters/ChorePilot by WestWaters.

ChorePilot keeps the house and its chore board; this cell is a thin client of its MCP server on the same machine, the LAN or Tailscale. ChorePilot still decides everything from the person the token belongs to: reads, lights, the vacuum and the AC in the house's band run; a water or heat action (dishwasher, washer, sprinkler, oven) waits for that person's own yes on their phone; a kid's request goes to a parent's approval queue; unlocking, opening the garage and disarming are never available to an agent.

Get it

Tell the agent "add the chorepilot cell", or run nodecode add nc://nodecode-chorepilot.

Set it up

On the ChorePilot machine, make a token (it is shown once; ChorePilot keeps it hashed):

chorepilot mcp token add <person> --client nodecode

Keep ChorePilot's MCP server running there: chorepilot run, or chorepilot mcp --http (add --lan for another machine on your network, or put tailscale serve --bg 8770 in front of it).

Then set the chorepilot section — in /settings, or in ~/.nodecode/config.jsonc:

Member What it is
url the server's address: http://127.0.0.1:8770/mcp on the same machine, http://<lan-host>:8770/mcp on the LAN, https://<host>.<tailnet>.ts.net/mcp over Tailscale
token_env the environment variable holding the token, e.g. CHOREPILOT_TOKEN
token_file or the file holding it, 0600
timeout_seconds how long one call may wait, a confirmation included (default 150; ChorePilot itself gives up after 120)
preload_tools list the house's tools at start, so chorepilot_call's description names them (default true; a house that is down costs the start two seconds)

Exactly one of token_env and token_file. Plain http:// is accepted only to this machine or a private network (LAN, Tailscale, *.local, *.ts.net); anything else needs https, or the token would cross the internet in the clear. A section with neither token member refuses at start, and the cells report says what the section still needs.

Use it

Ask "what's on the chore board?", "is the dishwasher done?", "turn the living-room light off". The model calls:

Tool What it does
chorepilot_status a device's state, or the whole house's. Read-only.
chorepilot_chores the chore board, optionally for one person and one scope. Read-only.
chorepilot_who_has who has a chore this week or next, and when it was last done.
chorepilot_done mark a chore done, by the token's person unless another is named.
chorepilot_whoami which household person this connection acts as, and what an agent may do.
chorepilot_tools every tool this house offers, with its arguments.
chorepilot_call any other house tool by name, e.g. {"tool": "set_light", "arguments": {"device": "living_room_light", "action": "turn_on"}}

For water or heat, the answer comes back when the person has said yes on their own phone, and the tool says so in a note; if they did not, the note says nothing was done. (help :chorepilot) carries the same rules for the model. The operator can also type:

/chorepilot              who this connection is
/chorepilot status [device]
/chorepilot chores
/chorepilot who <chore>
/chorepilot done <chore>
/chorepilot tools

What is in it

File What it is
cell.lisp The seven tools, /chorepilot, the manual, and the chorepilot section they run on.
mcp.lisp The MCP client: initialize, tools/list, tools/call, the session id, and the plain-http check.
test/ Offline tests over a stubbed nlk:http and a scripted house.

License

Apache-2.0, the original's licence: the LICENSE file is ChorePilot's, unchanged. See NOTICE for what was rewritten and what was left out.

Add nc://chorepilot

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 43a580b.

    $ nodecode add nc://chorepilot

    Or tell the agent add the chorepilot cell.