Getting Started

Everything you need to start tracking, organizing, and managing your work with Th1ngs.

What is Th1ngs?

Th1ngs is a flexible item and task management platform. Think of it as a programmable tracker: you define what you want to track, how it's organized, and the lifecycle each item goes through — no coding required.

📦
Boxes
Containers that group related Things — like a project board or issue queue.
🗂️
Things
The core unit — a task, ticket, asset, or any item you want to track.
⚙️
Custom Fields
Attach typed metadata: text, numbers, dates, dropdowns, users.
🔄
Workflows
State machines that guide Things through lifecycle stages.
📧
Email
Create and comment on Things directly via email threads.
🤖
AI / MCP
Connect LLMs to search and create Things via the MCP protocol.

Quick Setup

  1. 1
    Create an account

    Sign up with your email or Google account. After a short review your account is activated.

  2. 2
    Create your first Box

    Click New Box, pick a box type (Tasks, Agile, Places …) and give it a short key like PROJ.

  3. 3
    Add Things

    Inside the box, click New Thing. Fill in the summary, custom fields, and set a workflow state.

  4. 4
    Invite collaborators

    In Box Settings → People, grant access to teammates by role: Viewer, Editor, or Admin.

  5. 5
    Configure your workflow

    Define the states Things move through and which transitions are allowed.

You can keep a Box public so anyone can browse it without logging in, or make it private and control access per user.

Core Concepts

The hierarchy and data model behind Th1ngs.

The Three-Level Hierarchy

🏢
Site
Multi-tenant root
📦
Box
Groups of Things
🗒️
Thing
Individual items

Anatomy of a Thing

A Thing is the primary entity. It carries:

  • Key — unique ID like PROJ-42, auto-generated from the box key.
  • Summary — one-line title.
  • Description — rich-text body (often populated from email).
  • Status — current workflow state (Open, In Progress, Done, …).
  • Custom Fields — typed fields defined by the box schema.
  • Comments — threaded discussion.
  • Attachments — versioned files stored per Thing.
  • Relations — links to other Things.
  • History — full audit log of every change.

Box Types

Each Box is created from a Box Type — a schema template that pre-configures the custom fields, default workflow, and view layout.

Built-in types include: Tasks, Agile / Software, Project Management, Places, Photo, and Guide.

Permissions

RoleCapabilities
ViewerRead Things, comments, attachments
EditorCreate & edit Things, comments, attachments, advance workflows
AdminFull access + box configuration, people management
Super-AdminCross-site access, system administration

Boxes

Boxes are the containers that group your Things. Each has its own schema, workflow, and access controls.

Creating a Box

Go to Boxes → New Box and choose:

  • Name — displayed everywhere.
  • Key — short prefix like PROJ. Used in Thing keys (PROJ-1).
  • Type — the schema template to start from.
  • Visibility — public (anyone) or private (invited users only).
Box keys are permanent — once set they can't be changed, because Thing keys like PROJ-42 are derived from them.

Box Settings

SectionWhat you configure
GeneralName, description, visibility, box type
Custom FieldsAdd, edit, reorder, and mark required fields
WorkflowStates, transitions, conditions and validators
PeopleGrant or revoke user roles (Viewer / Editor / Admin)
EmailConnect an IMAP mailbox to receive Things by email

Built-in Box Types

  • Tasks — Generic tracker with priority and assignee.
  • Agile / Software — Sprints, story points, releases.
  • Project Management — Phases, milestones, owners.
  • Places — Items with geographic coordinates.
  • Photo — Image-centric items with gallery view.
  • Guide — Documentation-style knowledge base entries.

Things

Things are the primary objects — tasks, tickets, assets, entries, or anything else you want to track.

Creating a Thing

Click + New in the navbar or from inside a Box. Provide:

  • Summary (required) — one-line title.
  • Description — body text, often pre-filled from an incoming email.
  • Custom Fields — any fields defined by the box schema.
  • Status — the starting workflow state.

The Thing Detail Page

From the detail page you can:

  • Edit any field inline and save immediately.
  • Advance the workflow state via transition buttons.
  • Add, read and delete comments.
  • Upload files — versioned automatically as report.pdf, report-2.pdf, …
  • Create and remove relations to other Things.
  • Browse the full change history.

Thing Keys

Every Thing gets a permanent key like PROJ-42. Keys are unique site-wide, human-readable, and searchable. Use them in comments or external tools to reference a specific Thing.

Use the search bar in the navbar to find any Thing instantly. Recent Things appear as autocomplete suggestions as you type.

Relations

Link two Things together with a relation type and an optional comment. Relations are bidirectional — both Things show the link. Delete a relation from either side.

Attachments

Files are stored under {boxKey}/{thingId}/ with automatic versioning. Download or delete individual file versions from the Thing page.

Custom Fields

Attach typed metadata to every Thing in a Box. Design the schema that fits your workflow exactly.

Field Types

TypeUse case
TextShort labels, names, identifiers (up to 2000 chars)
Long TextDescriptions, notes, rich content (unlimited)
NumberStory points, quantities, scores
Date / DateTimeDue dates, milestones, timestamps
MoneyMonetary amounts with currency (e.g. USD, EUR)
EffortTime estimates in hours/days
SelectControlled vocabulary (Priority, Category, …)
Multi-SelectTags, labels, multiple categories
Select-SuggestDynamic autocomplete backed by a provider (e.g. Countries)
RadioSingle-choice radio buttons
UserAssignee, reviewer, owner (references a user account)
EmailEmail address with mailto link
Earth PointGeographic coordinates (latitude/longitude)

Managing Fields

Open Box Settings → Custom Fields. From there:

  • Add a field — choose its name and type.
  • Mark a field as required to block saving if empty.
  • Reorder fields — the order determines form and list layout.
  • For Select fields, manage the list of allowed option values.

Select-Suggest Providers

Fields of type select-suggest support dynamic option providers. A developer can implement the SelectSuggestProvider interface to fetch options from any external source (e.g. a REST API, a database).

public interface SelectSuggestProvider {
    String getKey();
    List<String> suggest(String query);
}

Register your provider as a Spring bean — it will be auto-discovered and available in the admin field configuration.

Built-in providers: countries — fetches country names from a public REST API with a built-in static fallback.

Deleting a custom field permanently removes all stored values for that field across every Thing in the Box. This cannot be undone.

Workflows

Workflows are YAML-defined state machines that guide Things through a structured lifecycle.

How Workflows Work

A workflow defines:

  • States — stages a Thing can be in (Open, In Progress, Done …).
  • Transitions — allowed moves between states.
  • Conditions — rules that must pass before a transition is allowed.
  • Validators — checks at transition time (e.g. a required field must be set).
  • Post-functions — actions run automatically after a transition succeeds.

Example Workflow YAML

name: Simple Task Workflow
initial_state: open
states:
  - id: open
    label: Open
    color: "#6366f1"
  - id: in_progress
    label: In Progress
    color: "#f59e0b"
  - id: done
    label: Done
    color: "#22c55e"
transitions:
  - from: open
    to:   in_progress
    label: Start Work
  - from: in_progress
    to:   done
    label: Mark Complete

Assigning a Workflow to a Box

In Box Settings → Workflow, select the workflow schema to use. Changing the workflow doesn't reset existing Thing states — they keep their current state and follow the new transitions going forward.

Agile Boards

Boxes of type Agile / Software render workflow states as swim-lane columns. Drag Things between columns to trigger transitions. Releases (milestones) can be created and Things assigned to them for sprint-style planning.

Email Integration

Connect an IMAP mailbox to a Box and create Things — and add comments — entirely by email.

How It Works

Th1ngs polls the configured inbox on a schedule. For each unread message:

  • New thread — creates a new Thing. Subject becomes the summary; email body becomes the description.
  • Reply to existing thread — adds a comment to the existing Thing. Quoted previous messages are stripped automatically.
  • Attachments — saved directly to the Thing.

Connecting a Mailbox

Go to Box Settings → Email → Connect IMAP Mailbox.

FieldDescription
Email / UsernameThe mailbox login (usually the full email address)
PasswordMailbox password or app-specific password
Server (Host)IMAP hostname — e.g. imap.gmail.com
Port993 for IMAPS (TLS) · 143 for plain IMAP
Protocolimaps (recommended) or imap
FolderFolder to monitor — default INBOX
For Gmail: enable IMAP in Gmail settings and use an App Password (not your regular password) when 2-Step Verification is active.

Thread Tracking

Th1ngs tracks email threads using the RFC 2822 Message-ID, In-Reply-To, and References headers. When a Thing is created from an email, its Message-ID is stored. Any future reply — including reply-to-reply chains — will add a comment to the same Thing rather than creating a new one.

Quote Stripping

When a reply becomes a comment, Th1ngs strips the quoted previous messages automatically. It handles:

  • >-prefixed quoted lines in plain-text emails.
  • Multi-line "On [date] … wrote:" separators (Gmail, Outlook, Apple Mail).
  • HTML emails: removes <blockquote>, Gmail quote divs, Yahoo quoted sections, Outlook reply containers, and everything after <hr> dividers.

REST API

Programmatic access to Th1ngs via a JSON REST API. Authenticate with JWT or Personal Access Tokens.

Authentication

  • JWT — POST credentials to /rest/api/1/auth/login, then pass the token as Authorization: Bearer <token>.
  • Personal Access Tokens — generate in your profile settings; same bearer format.
  • Google OAuth2 — for browser-based flows.

Base URL

https://th1ngs.com/rest/api/1/

Key Endpoints

MethodPathDescription
GET/boxesList accessible boxes
GET/boxes/{id}/thingsList Things in a box
GET/things/{key}Get a Thing by key
POST/boxes/{id}/thingsCreate a new Thing
PUT/things/{key}Update a Thing
DEL/things/{key}Delete a Thing
POST/things/{key}/commentsAdd a comment
GET/things/recentRecently viewed Things

Example

# List Things in box 42
curl -X GET \
  https://th1ngs.com/rest/api/1/boxes/42/things \
  -H 'Authorization: Bearer <token>' \
  -H 'Accept: application/json'
The full interactive API reference is available at /api-docs.html on your Th1ngs instance.

AI / MCP Integration

Th1ngs includes a built-in MCP server — connect Claude, ChatGPT, or any MCP-compatible AI to search and manage your Things.

What is MCP?

The Model Context Protocol is an open standard that lets LLM-based tools connect to external data sources. Th1ngs acts as an MCP server; your AI assistant is the client.

Connecting an AI Assistant

In your AI tool's MCP configuration, point it to:

url:  https://th1ngs.com/mcp/sse
type: sse

No authentication is needed for public boxes. For private boxes, pass a Personal Access Token as a bearer header (depending on your AI client's configuration).

Available Tools

ToolDescription
list_boxesList accessible boxes with metadata and thing types
search_thingsFull-text search across accessible Things
get_thingFetch full detail of a single Thing by key
create_thingCreate a new Thing in a specified box (requires auth)

Privacy & Access Control

The MCP server enforces the same access controls as the web UI. Unauthenticated callers can only see public boxes. Private boxes require a valid user token — the same one you'd use for the REST API.

Try telling your AI: "Search my Th1ngs for open bugs tagged with PROJ" — it will call search_things automatically and return results in context.