Joinery

Sign in with email and password

TeamworkApps

Sign in with your API token

Joinery

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

TeamworkApps

Welcome back

Here's what's happening today.

☀ Daily Brief Key updates and what's next. ›
✓ – Tasks due today ▤ – Projects active ◈ – New updates
▤ My Projects Quick access to your active projects. ›
View all projects ›
◷ Recent Activity Latest updates across your projects. ›
View all activity ›
✎

Notes

Daily notes with tags and mood — search the full grammar.

Today's note

New entry

▤

Docs

Titled documents with append-only revision history — archive to retire, never delete.

✉

Mail

Read and triage your mailboxes — bodies are sanitized plain text, no remote content.

Mail accounts — connect, folder access, ask-vs-do policy

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

Your schedule across every connected calendar, expanded for recurrence.

Select a day

New event

All-day: leave both times empty. Attendees receive an email invitation with an attached calendar file they can accept or decline; their responses show on the event. Creating follows the account's ask-vs-do policy.

Calendar accounts — connect CalDAV, event policies

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.

◉

Contacts

One address book over every connected CardDAV account.

Contacts accounts — connect CardDAV, contact policies

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

Relationships: contacts linked to synced cards, organizations, keep-in-touch cadence.

✓

Tasks

Work your list — check things off, start, cancel. Agent-created tasks land here too.

⚑

Projects

Group tasks and milestones; archive is terminal, done/paused gate task links.

Project

◷

Activity

Everything that happened across your projects, newest first — recorded automatically.

❐

Reading

Save-for-later triage: capture a URL server-side, then read, finish, archive.

¤

Ledger

Double-entry books — every transaction balances; mistakes are voided or corrected, never edited.

Accounts

Transactions

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

▣

Inventory

What you have and where it is — containers, placement age, deadlines, full movement trail.

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 — preview any time, or schedule email delivery.

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

Settings

Connections, delivery preferences, and administration live in their own panes.

⚙

Admin

Provision users and tenants, manage tiers and tokens.

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.

All apps