Polls for and executes remote development tasks defined in Markdown files from an Obsidian-based workflow.

Install

mkdir -p .claude/skills/remote && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18901" && unzip -o skill.zip -d .claude/skills/remote && rm skill.zip

Installs to .claude/skills/remote

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Polls for remote tasks submitted via Obsidian (iOS) and executes them on macOS. Run repeatedly for continuous polling.
118 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Poll for remote tasks submitted via Obsidian (iOS)
  • Execute pending tasks on macOS
  • List all tasks and their statuses
  • Remove completed and failed task files
  • Update task status (pending, in-progress, blocked, done, failed)
  • Spawn Codex subagents for task execution

How it works

The skill polls a designated directory for Markdown task files, parses their status and project, executes pending tasks by spawning Codex subagents, and updates the task status and results.

Inputs & outputs

You give it
Markdown task files in `~/nickolashkraus/agent-os/master/tasks/remote/` with a prompt and metadata
You get back
Executed tasks, updated task statuses, and a summary of processed tasks

When to use remote

  • Triggering deploys from mobile
  • Managing remote task queues
  • Executing automated dev workflows from notes

About this skill

Remote

Polls ~/nickolashkraus/agent-os/master/tasks/remote/ for task files submitted from Obsidian on iOS. Each task is a Markdown file with a prompt and metadata. Run repeatedly for continuous polling.

Usage

$remote              Poll once and execute any pending tasks.
$remote poll         Same as above.
$remote list         List all tasks and their statuses.
$remote clean        Remove completed and failed task files.

Continuous polling (self-paced):

Run repeatedly: $remote

Task format

Each task is a Markdown file in tasks/remote/. The filename is the task slug (e.g., deploy-staging.md, fix-typo-in-readme.md).

---
status: pending
created: 2026-04-27T10:30:00
project: nickolashkraus
---

The prompt for Codex goes here. Write it exactly as you would
type it into Codex.

Fields

  • status: pending, in-progress, blocked, done, failed.
  • created: ISO 8601 timestamp.
  • project: The directory name under ~/nickolashkraus/ (or ~/Function-Health/) where the task should be executed.

Blocked tasks

When an agent needs clarification, it sets status: blocked and appends a ## Blocked section with the question:

---
status: blocked
created: 2026-04-27T10:30:00
project: nickolashkraus
---

The original prompt.

## Blocked

Which database should I run the migration against, Dev or Prod?

To unblock, add an ## Answer section and change the status back to pending:

---
status: pending
created: 2026-04-27T10:30:00
project: nickolashkraus
---

The original prompt.

## Blocked

Which database should I run the migration against, Dev or Prod?

## Answer

Dev.

The next poll picks it up and continues with the original prompt plus the Q&A context.

Result

When a task completes, the skill updates the frontmatter and appends a result block:

---
status: done
created: 2026-04-27T10:30:00
completed: 2026-04-27T10:35:00
project: nickolashkraus
---

The original prompt.

## Result

A concise summary of what was done.

Failed tasks get status: failed and a ## Result block explaining the error.

Step 1: Parse arguments

Parse the user-provided skill input to determine the subcommand. Default to poll if no arguments are provided.

Step 2: Execute subcommand

poll (default)

  1. List all .md files in tasks/remote/.
  2. Filter for files with status: pending in the frontmatter.
  3. Sort by created timestamp (oldest first).
  4. For each pending task: a. Update status to in-progress. b. Read the project field to determine the working directory.
    • If project starts with FH: or fh:, use ~/Function-Health/<rest>.
    • Otherwise, use ~/nickolashkraus/<project>/master (assumes worktree layout). If that path does not exist, try ~/nickolashkraus/<project>. c. Extract the full file content after the frontmatter closing ---. This includes the original prompt and, for unblocked tasks, any ## Blocked and ## Answer sections that provide additional context. d. Execute the task by spawning a Codex subagent in the target project directory. Pass the full content to the agent. e. If the agent needs clarification and cannot proceed:
    • Set status to blocked.
    • Append a ## Blocked section with the question.
    • Do not append a ## Result section. f. When the agent completes, update the task file:
    • Set status to done (or failed if the agent errored).
    • Add completed: <ISO 8601> to the frontmatter.
    • Append a ## Result section with the agent's summary.
  5. After all tasks are processed, print a summary.

If no pending tasks exist, print:

No pending remote tasks.

list

Read all .md files in tasks/remote/ and print a table:

Remote tasks:

  # | Status      | Created              | File
  1 | done        | 2026-04-27T10:30:00  | deploy-staging.md
  2 | blocked     | 2026-04-27T10:45:00  | run-migration.md
  3 | in-progress | 2026-04-27T11:00:00  | fix-typo.md
  4 | pending     | 2026-04-27T11:15:00  | update-deps.md

clean

Delete all task files with status: done or status: failed. Print the number of files removed.

Step 3: Schedule next poll

This skill is designed for a self-paced recurring Codex run rather than a fixed interval. After each poll, schedule the next run with adaptive timing:

  • Active: If any task was executed, blocked, or unblocked this poll, schedule the next poll in 60 seconds. There may be follow-up work or an answer arriving soon.
  • Idle: If no tasks were processed (nothing pending, nothing newly unblocked), schedule the next poll in 270 seconds. This keeps the cache warm without wasting cycles.

~/.codex/rules/meta-learning.md

When not to use it

  • When tasks are not submitted via Obsidian on iOS
  • When tasks are not intended for execution on macOS
  • When continuous polling is not desired

Limitations

  • Tasks must be Markdown files in a specific directory structure
  • Requires a `project` field in task metadata to determine the working directory
  • Does not automatically unblock tasks; requires user intervention to add an 'Answer' section

How it compares

This workflow enables remote task execution on macOS triggered by Markdown files from Obsidian on iOS, providing a specific mechanism for mobile-initiated automated workflows.

Compared to similar skills

remote side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
remote (this skill)017dNo flagsIntermediate
tmux202moReviewIntermediate
jira116moNo flagsBeginner
triaging-issues52moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry