Joinery

Sign in with email and password

Joinery

Sign in with your API token

Joinery

Second factor required — approve the login in your agent chat, or enter a code

joinery

Today

Today's note

New entry

Docs

Titled documents with append-only revision history. Markdown bodies, archive to retire (no hard delete).

Mail accounts

Connect a mailbox with its IMAP password (app passwords where required). Credentials are sealed at rest; the agent never sees them and no tool can read them back.

Manual server config skips autodetect. Both servers still require a live IMAP login before anything is stored.

Calendar accounts

Connect a CalDAV server (Fastmail, iCloud, Nextcloud, Google app-password). Credentials are sealed at rest; the agent never sees them and no tool can read them back.

Manual server URL is authoritative — discovery is skipped entirely and connect fails loudly if this URL doesn't work. A live PROPFIND must still succeed before anything is stored.

Events

Agenda view over your calendars — the local metadata cache, expanded recurring occurrences. Creating an event here is subject to the account's ask-vs-do policy: if it says ask, you'll get one confirm step.

New event

All-day: leave both times empty. Recurrence is agent-only for now (presets via calendar.create_event).

Contacts accounts

Connect a CardDAV server (Fastmail, iCloud, Nextcloud, Google app-password). Credentials are sealed at rest; the agent never sees them and no tool can read them back.

Manual server URL is authoritative — discovery is skipped entirely and connect fails loudly if this URL doesn't work. A live PROPFIND must still succeed before anything is stored.

CRM

Relationship data: contacts with overlay links to synced cards, organizations, keep-in-touch cadence.

Tasks

Your tasks. Open tasks (todo + doing) by default; cancelled is terminal and there is no delete.

Projects

Projects group tasks and milestones. Archive is terminal; done/paused states drive whether tasks may link.

Project

Reading queue

Save-for-later triage. Add a URL, capture it server-side (HTML becomes a document; PDFs are archived as blobs), then read, finish, archive.

Ledger

Double-entry books. Every transaction balances (Σ postings = 0); mistakes are voided or corrected, never edited. Integer cents, no floats.

Accounts

Transactions

Quick entry posts a balanced pair: debit account ← amount → credit account.

Inventory

What you have and where it is: typed containers (freezer, shelf, bin…), items with placement age and deadlines, and a movement trail for every thing. Agent grammar works here too — try type:freezer or expiring:7.

Containers

Put items

One item per line: name · qty unit · category · tag1,tag2 · use by YYYY-MM-DD · max N days — only name is required. Cold containers without a deadline return a shelf-life hint.

Items

Quick:

Deadlines

Past-prime first, then due within the window. Nothing is auto-discarded — overdue items stay listed until you act.

Daily brief

A proactive digest of your day: due tasks, today's events, keep-in-touch contacts, reading queue, project status. Preview any time; enable scheduled delivery once you have a mail account connected.

Delivery settings

Sections:

Timezone list is trimmed to common zones; if yours is missing, the agent can set any IANA zone via brief.set_settings.

Brief archive

Provision user

Creates the user and, if requested, issues their first API token. The token is shown exactly once and never stored — copy it somewhere safe now.

New tenant

Platform operators only; the section is hidden for tenant admins.

Users

Tenants

Password

Signs you into this portal with email + password. Changing it signs out your other browsers; API tokens and WebDAV mounts are unaffected. No password yet? Sign in with an API token, then set one here.

Two-factor authentication

Optional but recommended. With 2FA on, sign-in needs your password plus a second factor: a code from your authenticator app, approval in your agent chat, or a code emailed to your connected mailbox.

TOTP QR code

1. Scan the QR in your authenticator app (Aegis, 1Password, Google Authenticator…)

2. Enter the current 6-digit code to confirm

Sessions

Each browser you sign in from gets its own session cookie. Revoke any you don't recognize — or sign out everywhere.

WebDAV — mount your files anywhere

Your documents, projects, reading list and attachments are browsable from Finder, Windows Explorer, or any WebDAV client. Mint a token below (preset: WebDAV), then connect with:

Server (loading…)
Username joinery
Password your WebDAV token
Access —

CardDAV — sync your contacts

Your contacts sync with macOS Contacts, Thunderbird, DAVx⁵ or any CardDAV client. Mint a token below (preset: CardDAV), then connect with:

Server (loading…)
Username joinery
Password your CardDAV token
client-specific setup hints

Helpdesk integration

Connect your supportdesk: paste its base URL and an API key. The connection is validated live before saving, the key is sealed (never shown again), and the desk tools become available immediately to you and your agents.

Activity push (webhooks)

The desk can push ticket activity to Joinery; verified pushes reach your agents as events (app.desk.*). The signing secret is shown once when provisioned or rotated — paste it and the hook URL into the desk's webhook settings.

API tokens

Tokens authenticate the portal session, API clients, and WebDAV mounts. Mint as many as you like — one per device is a good habit. The plaintext is shown once at creation and never again; only a hash is stored.