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.zipInstalls 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.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
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)
- List all
.mdfiles intasks/remote/. - Filter for files with
status: pendingin the frontmatter. - Sort by
createdtimestamp (oldest first). - For each pending task: a. Update
statustoin-progress. b. Read theprojectfield to determine the working directory.- If
projectstarts withFH:orfh:, 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## Blockedand## Answersections 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
statustoblocked. - Append a
## Blockedsection with the question. - Do not append a
## Resultsection. f. When the agent completes, update the task file: - Set
statustodone(orfailedif the agent errored). - Add
completed: <ISO 8601>to the frontmatter. - Append a
## Resultsection with the agent's summary.
- If
- 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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| remote (this skill) | 0 | 17d | No flags | Intermediate |
| tmux | 20 | 2mo | Review | Intermediate |
| jira | 11 | 6mo | No flags | Beginner |
| triaging-issues | 5 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by nickolashkraus
View all by nickolashkraus →You might also like
tmux
openclaw
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
jira
davila7
Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.
triaging-issues
pytorch
Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.
file-manager
Xxiii8322766509
文件管理技能。用于创建、移动、复制、删除文件和文件夹,整理目录结构。当用户需要管理文件、整理文件夹或批量处理文件时使用。
openspec-archive-change
studyzy
归档实验性工作流中已完成的变更。当用户想要在实现完成后最终确定并归档变更时使用。
slash-commands
parcadei
Create and use Claude Code slash commands - quick prompts, bash execution, file references