| Crates.io | linear-motion |
| lib.rs | linear-motion |
| version | 0.1.1 |
| created_at | 2025-09-17 23:19:26.950368+00 |
| updated_at | 2025-09-17 23:43:01.694106+00 |
| description | A CLI tool for syncing between Linear and Motion |
| homepage | |
| repository | https://github.com/arlyon/linear-motion |
| max_upload_size | |
| id | 1844041 |
| size | 1,033,777 |
A command-line microservice that automatically synchronizes Linear issues with your Motion calendar, eliminating the manual effort of keeping your work items in sync between platforms.
The Linear-Motion Sync Tool is designed for developers who use Linear for team project management and Motion for personal task and calendar management. It provides a robust, configurable pipeline to sync assigned Linear issues to your Motion calendar, ensuring your personal to-do list accurately reflects your work commitments.
cargo install linear-motion
ubi --project arlyon/linear-motion
mise use -g cargo:linear-motion
mise use -g ubi:arlyon/linear-motion
Download the latest binary from the GitHub releases page.
Initialize configuration:
linear-motion init
Edit the generated config.json with your API keys and preferences
Run a one-time sync:
linear-motion sync
Start continuous background syncing:
linear-motion sync --watch
Check sync status:
linear-motion status
(coming soon) Podman Quadlet: Run the daemon under podman + systemd with auto-updates.
The tool uses a config.json file for configuration. Here's the structure:
{
"motion_api_key": "your_motion_api_key",
"sync_sources": [
{
"name": "My Team",
"linear_api_key": "your_linear_api_key",
"projects": ["PROJECT-1", "PROJECT-2"],
"webhook_base_url": "https://your-domain.com/webhooks",
"sync_rules": {
"default_task_duration_mins": 60,
"completed_linear_tag": "motioned",
"time_estimate_strategy": {
"fibonacci": {
"1": 30,
"2": 60,
"3": 120,
"5": 240,
"8": 480
},
"default_duration_mins": 60
}
}
}
],
"global_sync_rules": {
"default_task_duration_mins": 60,
"completed_linear_tag": "motioned",
"time_estimate_strategy": {
"default_duration_mins": 60
}
},
"polling_interval_seconds": 300,
"schedule_overrides": [
{
"name": "Work Hours",
"interval_seconds": 60,
"start_time": "09:00",
"end_time": "17:00",
"days": ["mon", "tue", "wed", "thu", "fri"]
}
]
}
The tool supports multiple estimation systems:
linear-motion init - Generate configuration templatelinear-motion sync - Run one-time synclinear-motion sync --watch - Start continuous background synclinear-motion status - Show current sync status and errorsPerfect for developers who:
fjall database for ID mappings and status trackingContributions are welcome! Please see the contributing guidelines for details.
This project is dual-licensed under either of
at your option. See LICENSE.md for details.