{
  "schemaVersion": "1.0",
  "item": {
    "slug": "linear-todos",
    "name": "Linear Todos",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/avegancafe/linear-todos",
    "canonicalUrl": "https://clawhub.ai/avegancafe/linear-todos",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/linear-todos",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=linear-todos",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SECURITY.md",
      "SKILL.md",
      "_meta.json",
      "cron-jobs.txt",
      "main.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/linear-todos"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/linear-todos",
    "agentPageUrl": "https://openagent3.xyz/skills/linear-todos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linear-todos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linear-todos/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Linear Todos",
        "body": "⚠️  This is a SOURCE-EXECUTION skill. The agent runs Python code from src/linear_todos/ when you invoke CLI commands. This is not instruction-only. Review src/linear_todos/api.py before first use.\n🔐 Security Note: This skill stores your Linear API key in plaintext JSON at ~/.config/linear-todos/config.json only if you run the setup command. Use a dedicated API key with minimal scope. The key is only used for Linear API calls and is never transmitted elsewhere. Prefer environment variables (LINEAR_API_KEY) to avoid persisted state.\nAudit Info: This skill makes HTTPS requests only to api.linear.app (Linear's official GraphQL API). No data is sent elsewhere. See src/linear_todos/api.py for the API client implementation."
      },
      {
        "title": "Credentials",
        "body": "VariableRequiredDescriptionLINEAR_API_KEYYesYour Linear API key from linear.app/settings/apiLINEAR_TEAM_IDNoDefault team ID for todosLINEAR_STATE_IDNoDefault state for new todosLINEAR_DONE_STATE_IDNoState for completed todosLINEAR_TIMEZONENoYour local timezone (e.g., America/New_York, Europe/London). Used for \"end of day\" calculations. Falls back to OpenClaw USER.md timezone if available.\n\nConfig Path: ~/.config/linear-todos/config.json (created by setup, permissions 0o600)"
      },
      {
        "title": "What This Skill Does",
        "body": "HTTP Requests: Makes HTTPS requests only to https://api.linear.app/graphql (Linear's official API). No telemetry, no third-party services.\nData Storage: Stores your API key and config in ~/.config/linear-todos/config.json (plaintext, permissions 0o600) only if you run the setup command. Team/issue data is fetched fresh each run — nothing is cached locally except your config.\nRuntime Behavior: This skill runs from bundled Python source code (not preinstalled system tools). The agent executes main.py and code in src/linear_todos/ when you run CLI commands.\nSetup Behavior: During interactive setup, the wizard temporarily sets LINEAR_API_KEY in the process environment to test the key. This is only during the setup session and is not persisted.\nNo Auto-Enable: Does not request platform privileges (always: false). Will not auto-enable itself for all agents.\nCode Locations:\n\nsrc/linear_todos/api.py — All HTTP requests to Linear\nsrc/linear_todos/config.py — Config file handling\nsrc/linear_todos/setup_wizard.py — Interactive setup\nsrc/linear_todos/cli.py — CLI commands"
      },
      {
        "title": "Recommended Security Practices",
        "body": "Use a dedicated API key: Create a separate Linear API token with minimal scope for this skill. Revoke it if you uninstall or stop using the skill.\nPrefer environment variables: Set LINEAR_API_KEY in your shell instead of running setup — no plaintext file is created.\nAudit the code: Review src/linear_todos/api.py to verify HTTP destinations before first use.\nRun initial setup in isolation: If unsure, run the skill in a container/VM for the first setup to inspect behavior."
      },
      {
        "title": "Cron Jobs (Optional)",
        "body": "The file cron-jobs.txt contains example cron entries for daily digests. It does NOT automatically install them. Adding cron jobs requires manual action:\n\n# Review the examples first:\ncat cron-jobs.txt\n\n# If you want to use them, edit your crontab:\ncrontab -e\n\nPreferred alternative: Use OpenClaw's built-in cron instead of system crontab:\n\nopenclaw cron add --name \"morning-digest\" --schedule \"0 8 * * *\" \\\n  --payload \"linear-todos digest\" --session-target isolated\n\nA powerful todo management system built on Linear with smart date parsing, priorities, and a complete CLI workflow."
      },
      {
        "title": "Quick Start",
        "body": "# Setup (run once)\nuv run python main.py setup\n\n# Create todos\nuv run python main.py create \"Call mom\" --when day\nuv run python main.py create \"Pay taxes\" --date 2025-04-15\nuv run python main.py create \"Review PR\" --priority high --when week\n\n# Natural language dates\nuv run python main.py create \"Meeting prep\" --date \"tomorrow\"\nuv run python main.py create \"Weekly report\" --date \"next Monday\"\nuv run python main.py create \"Dentist\" --date \"in 3 days\"\n\n# Manage todos\nuv run python main.py list\nuv run python main.py done ABC-123\nuv run python main.py snooze ABC-123 \"next week\"\n\n# Daily review\nuv run python main.py review"
      },
      {
        "title": "1. Get API Key",
        "body": "Get your API key from linear.app/settings/api. Recommendation: Create a dedicated API key with minimal scope for this skill."
      },
      {
        "title": "2. Run Setup",
        "body": "uv run python main.py setup\n\nThis interactive wizard will:\n\nVerify your API key\nList your Linear teams\nLet you select your todo team\nConfigure initial and done states\nSave settings to ~/.config/linear-todos/config.json (plaintext JSON)"
      },
      {
        "title": "3. Manual Configuration (optional)",
        "body": "Instead of running setup, you can use environment variables:\n\nexport LINEAR_API_KEY=\"lin_api_...\"\nexport LINEAR_TEAM_ID=\"your-team-id\"\nexport LINEAR_STATE_ID=\"your-todo-state-id\"\nexport LINEAR_DONE_STATE_ID=\"your-done-state-id\"\n\nOr create ~/.config/linear-todos/config.json:\n\n{\n  \"apiKey\": \"lin_api_...\",\n  \"teamId\": \"team-uuid\",\n  \"stateId\": \"todo-state-uuid\",\n  \"doneStateId\": \"done-state-uuid\",\n  \"timezone\": \"America/New_York\"\n}"
      },
      {
        "title": "create",
        "body": "Create a new todo with optional timing, priority, and description.\n\nuv run python main.py create \"Title\" [options]\n\nOptions:\n  --when day|week|month     Relative due date\n  --date DATE               Specific due date (supports natural language)\n  --priority LEVEL          urgent, high, normal, low, none\n  --desc \"Description\"      Add description\n\nNatural Date Examples:\n\nuv run python main.py create \"Task\" --date \"tomorrow\"\nuv run python main.py create \"Task\" --date \"Friday\"\nuv run python main.py create \"Task\" --date \"next Monday\"\nuv run python main.py create \"Task\" --date \"in 3 days\"\nuv run python main.py create \"Task\" --date \"in 2 weeks\"\nuv run python main.py create \"Task\" --date \"2025-04-15\"\n\nComplete Examples:\n\n# Due by end of today\nuv run python main.py create \"Call mom\" --when day\n\n# Due in 7 days\nuv run python main.py create \"Submit report\" --when week\n\n# Specific date with high priority\nuv run python main.py create \"Launch feature\" --date 2025-03-15 --priority high\n\n# Natural language date with description\nuv run python main.py create \"Team meeting prep\" --date \"next Monday\" --desc \"Prepare slides\"\n\n# Urgent priority, due tomorrow\nuv run python main.py create \"Fix production bug\" --priority urgent --date tomorrow"
      },
      {
        "title": "list",
        "body": "List all your todos.\n\nuv run python main.py list [options]\n\nOptions:\n  --all       Include completed todos\n  --json      Output as JSON"
      },
      {
        "title": "done",
        "body": "Mark a todo as completed.\n\nuv run python main.py done ISSUE_ID\n\n# Examples\nuv run python main.py done TODO-123\nuv run python main.py done ABC-456"
      },
      {
        "title": "snooze",
        "body": "Reschedule a todo to a later date.\n\nuv run python main.py snooze ISSUE_ID [when]\n\n# Examples\nuv run python main.py snooze TODO-123 \"tomorrow\"\nuv run python main.py snooze TODO-123 \"next Friday\"\nuv run python main.py snooze TODO-123 \"in 1 week\""
      },
      {
        "title": "review",
        "body": "Daily review command that organizes todos by urgency.\n\nuv run python main.py review\n\nOutput sections:\n\n🚨 OVERDUE - Past due date\n📅 Due Today - Due today\n⚡ High Priority - Urgent/high priority items\n📊 This Week - Due within 7 days\n📅 This Month - Due within 28 days\n📝 No Due Date - Items without dates"
      },
      {
        "title": "setup",
        "body": "Interactive setup wizard to configure your Linear integration.\n\nuv run python main.py setup\n\nThis will guide you through:\n\nVerifying your API key\nSelecting your Linear team\nConfiguring initial and done states\nSaving settings to ~/.config/linear-todos/config.json"
      },
      {
        "title": "For Agents",
        "body": "When the user asks for reminders or todos:"
      },
      {
        "title": "1. Parse Natural Language Dates",
        "body": "Convert user input to specific dates:\n\n# \"remind me Friday to call mom\"\nuv run python main.py create \"Call mom\" --date \"2025-02-21\"\n\n# \"remind me to pay taxes by April 15\"\nuv run python main.py create \"Pay taxes\" --date \"2025-04-15\"\n\n# \"remind me next week about the meeting\"\nuv run python main.py create \"Meeting\" --date \"next Monday\""
      },
      {
        "title": "2. Determine Priority",
        "body": "Ask if not specified:\n\nUrgent (🔥) - Critical, do immediately\nHigh (⚡) - Important, do soon\nNormal (📌) - Standard priority (default)\nLow (💤) - Can wait"
      },
      {
        "title": "3. Daily Briefing",
        "body": "When asked \"what do I have to do today\", run:\n\nuv run python main.py review\n\nPresent the output exactly as formatted - don't reformat or summarize."
      },
      {
        "title": "4. Complete Todos",
        "body": "When user says they completed something, mark it done:\n\nuv run python main.py done ISSUE-123"
      },
      {
        "title": "Date Parsing Reference",
        "body": "InputResulttodayTodaytomorrowNext dayFridayNext occurrence of Fridaynext MondayMonday of next weekthis FridayFriday of current week (or next if passed)in 3 days3 days from nowin 2 weeks14 days from now2025-04-15Specific date"
      },
      {
        "title": "Priority Levels",
        "body": "LevelNumberIconUse ForUrgent1🔥Critical, blocking issuesHigh2⚡Important, time-sensitiveNormal3📌Standard tasks (default)Low4💤Nice-to-have, can waitNone0📋No priority set"
      },
      {
        "title": "Timezone Support",
        "body": "By default, due dates are calculated in UTC (end of day = 23:59:59 UTC). To use your local timezone for \"end of day\" calculations:\n\n# Set via environment variable\nexport LINEAR_TIMEZONE=\"America/New_York\"\n\n# Or add to config.json\n{\n  \"timezone\": \"America/New_York\"\n}\n\nOpenClaw Integration: If running inside an OpenClaw workspace, the skill will automatically detect your timezone from USER.md (e.g., timezone: America/New_York). No manual configuration needed!\n\nWhen a timezone is configured:\n\n--when day sets due date to end of today in your timezone (converted to UTC for Linear)\n--when week sets due date to 7 days from now, end of day in your timezone\n--date \"tomorrow\" sets due date to end of tomorrow in your timezone\n\nCommon timezone values: America/New_York, America/Los_Angeles, Europe/London, Europe/Paris, Asia/Tokyo"
      },
      {
        "title": "Configuration Precedence",
        "body": "Settings are loaded in this order (later overrides earlier):\n\nDefault values (none)\nConfig file: ~/.config/linear-todos/config.json\nEnvironment variables: LINEAR_*\nCommand-line flags: --team, --state"
      },
      {
        "title": "Files",
        "body": "FilePurposemain.pyMain entry point for the CLIsrc/linear_todos/cli.pyCLI implementation with all commandssrc/linear_todos/api.pyLinear API clientsrc/linear_todos/config.pyConfiguration managementsrc/linear_todos/dates.pyDate parsing utilitiessrc/linear_todos/setup_wizard.pyInteractive setup wizard"
      }
    ],
    "body": "Linear Todos\n\n⚠️ This is a SOURCE-EXECUTION skill. The agent runs Python code from src/linear_todos/ when you invoke CLI commands. This is not instruction-only. Review src/linear_todos/api.py before first use.\n\n🔐 Security Note: This skill stores your Linear API key in plaintext JSON at ~/.config/linear-todos/config.json only if you run the setup command. Use a dedicated API key with minimal scope. The key is only used for Linear API calls and is never transmitted elsewhere. Prefer environment variables (LINEAR_API_KEY) to avoid persisted state.\n\nAudit Info: This skill makes HTTPS requests only to api.linear.app (Linear's official GraphQL API). No data is sent elsewhere. See src/linear_todos/api.py for the API client implementation.\n\nCredentials\nVariable\tRequired\tDescription\nLINEAR_API_KEY\tYes\tYour Linear API key from linear.app/settings/api\nLINEAR_TEAM_ID\tNo\tDefault team ID for todos\nLINEAR_STATE_ID\tNo\tDefault state for new todos\nLINEAR_DONE_STATE_ID\tNo\tState for completed todos\nLINEAR_TIMEZONE\tNo\tYour local timezone (e.g., America/New_York, Europe/London). Used for \"end of day\" calculations. Falls back to OpenClaw USER.md timezone if available.\n\nConfig Path: ~/.config/linear-todos/config.json (created by setup, permissions 0o600)\n\nSecurity & Auditing\nWhat This Skill Does\nHTTP Requests: Makes HTTPS requests only to https://api.linear.app/graphql (Linear's official API). No telemetry, no third-party services.\nData Storage: Stores your API key and config in ~/.config/linear-todos/config.json (plaintext, permissions 0o600) only if you run the setup command. Team/issue data is fetched fresh each run — nothing is cached locally except your config.\nRuntime Behavior: This skill runs from bundled Python source code (not preinstalled system tools). The agent executes main.py and code in src/linear_todos/ when you run CLI commands.\nSetup Behavior: During interactive setup, the wizard temporarily sets LINEAR_API_KEY in the process environment to test the key. This is only during the setup session and is not persisted.\nNo Auto-Enable: Does not request platform privileges (always: false). Will not auto-enable itself for all agents.\nCode Locations:\nsrc/linear_todos/api.py — All HTTP requests to Linear\nsrc/linear_todos/config.py — Config file handling\nsrc/linear_todos/setup_wizard.py — Interactive setup\nsrc/linear_todos/cli.py — CLI commands\nRecommended Security Practices\nUse a dedicated API key: Create a separate Linear API token with minimal scope for this skill. Revoke it if you uninstall or stop using the skill.\nPrefer environment variables: Set LINEAR_API_KEY in your shell instead of running setup — no plaintext file is created.\nAudit the code: Review src/linear_todos/api.py to verify HTTP destinations before first use.\nRun initial setup in isolation: If unsure, run the skill in a container/VM for the first setup to inspect behavior.\nCron Jobs (Optional)\n\nThe file cron-jobs.txt contains example cron entries for daily digests. It does NOT automatically install them. Adding cron jobs requires manual action:\n\n# Review the examples first:\ncat cron-jobs.txt\n\n# If you want to use them, edit your crontab:\ncrontab -e\n\n\nPreferred alternative: Use OpenClaw's built-in cron instead of system crontab:\n\nopenclaw cron add --name \"morning-digest\" --schedule \"0 8 * * *\" \\\n  --payload \"linear-todos digest\" --session-target isolated\n\n\nA powerful todo management system built on Linear with smart date parsing, priorities, and a complete CLI workflow.\n\nQuick Start\n# Setup (run once)\nuv run python main.py setup\n\n# Create todos\nuv run python main.py create \"Call mom\" --when day\nuv run python main.py create \"Pay taxes\" --date 2025-04-15\nuv run python main.py create \"Review PR\" --priority high --when week\n\n# Natural language dates\nuv run python main.py create \"Meeting prep\" --date \"tomorrow\"\nuv run python main.py create \"Weekly report\" --date \"next Monday\"\nuv run python main.py create \"Dentist\" --date \"in 3 days\"\n\n# Manage todos\nuv run python main.py list\nuv run python main.py done ABC-123\nuv run python main.py snooze ABC-123 \"next week\"\n\n# Daily review\nuv run python main.py review\n\nSetup\n1. Get API Key\n\nGet your API key from linear.app/settings/api. Recommendation: Create a dedicated API key with minimal scope for this skill.\n\n2. Run Setup\nuv run python main.py setup\n\n\nThis interactive wizard will:\n\nVerify your API key\nList your Linear teams\nLet you select your todo team\nConfigure initial and done states\nSave settings to ~/.config/linear-todos/config.json (plaintext JSON)\n3. Manual Configuration (optional)\n\nInstead of running setup, you can use environment variables:\n\nexport LINEAR_API_KEY=\"lin_api_...\"\nexport LINEAR_TEAM_ID=\"your-team-id\"\nexport LINEAR_STATE_ID=\"your-todo-state-id\"\nexport LINEAR_DONE_STATE_ID=\"your-done-state-id\"\n\n\nOr create ~/.config/linear-todos/config.json:\n\n{\n  \"apiKey\": \"lin_api_...\",\n  \"teamId\": \"team-uuid\",\n  \"stateId\": \"todo-state-uuid\",\n  \"doneStateId\": \"done-state-uuid\",\n  \"timezone\": \"America/New_York\"\n}\n\nCommands\ncreate\n\nCreate a new todo with optional timing, priority, and description.\n\nuv run python main.py create \"Title\" [options]\n\nOptions:\n  --when day|week|month     Relative due date\n  --date DATE               Specific due date (supports natural language)\n  --priority LEVEL          urgent, high, normal, low, none\n  --desc \"Description\"      Add description\n\n\nNatural Date Examples:\n\nuv run python main.py create \"Task\" --date \"tomorrow\"\nuv run python main.py create \"Task\" --date \"Friday\"\nuv run python main.py create \"Task\" --date \"next Monday\"\nuv run python main.py create \"Task\" --date \"in 3 days\"\nuv run python main.py create \"Task\" --date \"in 2 weeks\"\nuv run python main.py create \"Task\" --date \"2025-04-15\"\n\n\nComplete Examples:\n\n# Due by end of today\nuv run python main.py create \"Call mom\" --when day\n\n# Due in 7 days\nuv run python main.py create \"Submit report\" --when week\n\n# Specific date with high priority\nuv run python main.py create \"Launch feature\" --date 2025-03-15 --priority high\n\n# Natural language date with description\nuv run python main.py create \"Team meeting prep\" --date \"next Monday\" --desc \"Prepare slides\"\n\n# Urgent priority, due tomorrow\nuv run python main.py create \"Fix production bug\" --priority urgent --date tomorrow\n\nlist\n\nList all your todos.\n\nuv run python main.py list [options]\n\nOptions:\n  --all       Include completed todos\n  --json      Output as JSON\n\ndone\n\nMark a todo as completed.\n\nuv run python main.py done ISSUE_ID\n\n# Examples\nuv run python main.py done TODO-123\nuv run python main.py done ABC-456\n\nsnooze\n\nReschedule a todo to a later date.\n\nuv run python main.py snooze ISSUE_ID [when]\n\n# Examples\nuv run python main.py snooze TODO-123 \"tomorrow\"\nuv run python main.py snooze TODO-123 \"next Friday\"\nuv run python main.py snooze TODO-123 \"in 1 week\"\n\nreview\n\nDaily review command that organizes todos by urgency.\n\nuv run python main.py review\n\n\nOutput sections:\n\n🚨 OVERDUE - Past due date\n📅 Due Today - Due today\n⚡ High Priority - Urgent/high priority items\n📊 This Week - Due within 7 days\n📅 This Month - Due within 28 days\n📝 No Due Date - Items without dates\nsetup\n\nInteractive setup wizard to configure your Linear integration.\n\nuv run python main.py setup\n\n\nThis will guide you through:\n\nVerifying your API key\nSelecting your Linear team\nConfiguring initial and done states\nSaving settings to ~/.config/linear-todos/config.json\nFor Agents\n\nWhen the user asks for reminders or todos:\n\n1. Parse Natural Language Dates\n\nConvert user input to specific dates:\n\n# \"remind me Friday to call mom\"\nuv run python main.py create \"Call mom\" --date \"2025-02-21\"\n\n# \"remind me to pay taxes by April 15\"\nuv run python main.py create \"Pay taxes\" --date \"2025-04-15\"\n\n# \"remind me next week about the meeting\"\nuv run python main.py create \"Meeting\" --date \"next Monday\"\n\n2. Determine Priority\n\nAsk if not specified:\n\nUrgent (🔥) - Critical, do immediately\nHigh (⚡) - Important, do soon\nNormal (📌) - Standard priority (default)\nLow (💤) - Can wait\n3. Daily Briefing\n\nWhen asked \"what do I have to do today\", run:\n\nuv run python main.py review\n\n\nPresent the output exactly as formatted - don't reformat or summarize.\n\n4. Complete Todos\n\nWhen user says they completed something, mark it done:\n\nuv run python main.py done ISSUE-123\n\nDate Parsing Reference\nInput\tResult\ntoday\tToday\ntomorrow\tNext day\nFriday\tNext occurrence of Friday\nnext Monday\tMonday of next week\nthis Friday\tFriday of current week (or next if passed)\nin 3 days\t3 days from now\nin 2 weeks\t14 days from now\n2025-04-15\tSpecific date\nPriority Levels\nLevel\tNumber\tIcon\tUse For\nUrgent\t1\t🔥\tCritical, blocking issues\nHigh\t2\t⚡\tImportant, time-sensitive\nNormal\t3\t📌\tStandard tasks (default)\nLow\t4\t💤\tNice-to-have, can wait\nNone\t0\t📋\tNo priority set\nTimezone Support\n\nBy default, due dates are calculated in UTC (end of day = 23:59:59 UTC). To use your local timezone for \"end of day\" calculations:\n\n# Set via environment variable\nexport LINEAR_TIMEZONE=\"America/New_York\"\n\n# Or add to config.json\n{\n  \"timezone\": \"America/New_York\"\n}\n\n\nOpenClaw Integration: If running inside an OpenClaw workspace, the skill will automatically detect your timezone from USER.md (e.g., timezone: America/New_York). No manual configuration needed!\n\nWhen a timezone is configured:\n\n--when day sets due date to end of today in your timezone (converted to UTC for Linear)\n--when week sets due date to 7 days from now, end of day in your timezone\n--date \"tomorrow\" sets due date to end of tomorrow in your timezone\n\nCommon timezone values: America/New_York, America/Los_Angeles, Europe/London, Europe/Paris, Asia/Tokyo\n\nConfiguration Precedence\n\nSettings are loaded in this order (later overrides earlier):\n\nDefault values (none)\nConfig file: ~/.config/linear-todos/config.json\nEnvironment variables: LINEAR_*\nCommand-line flags: --team, --state\nFiles\nFile\tPurpose\nmain.py\tMain entry point for the CLI\nsrc/linear_todos/cli.py\tCLI implementation with all commands\nsrc/linear_todos/api.py\tLinear API client\nsrc/linear_todos/config.py\tConfiguration management\nsrc/linear_todos/dates.py\tDate parsing utilities\nsrc/linear_todos/setup_wizard.py\tInteractive setup wizard"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/avegancafe/linear-todos",
    "publisherUrl": "https://clawhub.ai/avegancafe/linear-todos",
    "owner": "avegancafe",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/linear-todos",
    "downloadUrl": "https://openagent3.xyz/downloads/linear-todos",
    "agentUrl": "https://openagent3.xyz/skills/linear-todos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linear-todos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linear-todos/agent.md"
  }
}