← Back to Skills Marketplace
brianppetty

Farmos Equipment

by brianppetty · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
638
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install farmos-equipment
Description
Query equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required).
README (SKILL.md)

FarmOS Equipment

Query and manage farm equipment data — status, maintenance schedules, service records, and parts inventory.

When to Use This

What this skill handles: Fleet status, maintenance schedules, equipment issues, hour/mileage logging, service manual lookups, parts questions, and maintenance completion records.

Trigger phrases: "the [machine] is...", "equipment status", "log hours on...", "maintenance due", "what equipment needs service?", "search equipment manuals for...", "what oil does the 8370R take?"

What this does NOT handle: Field observations about crop/soil/pest issues (use farmos-observations), scheduling repairs for people or assigning work (create a task via farmos-tasks), weather damage reports (use farmos-observations with weather_damage type).

Minimum viable input: A machine name or description of an equipment issue. "The combine sounds funny" is enough.

API Base

http://100.102.77.110:8005

Data Completeness Rules

CRITICAL: Always return complete data, never truncated results.

  1. Dashboard endpoint is for SUMMARY STATS ONLY — use /api/integration/dashboard for counts and overdue items, NOT for listing equipment.
  2. For listing equipment, use /api/integration/equipment which returns ALL equipment without pagination.
  3. For due maintenance, use /api/integration/due-maintenance which returns ALL due/overdue items.
  4. Always state the total count of items returned: "Found 3 overdue maintenance items" (not just "overdue items:").
  5. If suspiciously few results, flag it: "Only seeing X items — that may be incomplete. Let me try a different endpoint."
  6. If an endpoint fails, report the failure to the user rather than silently falling back to partial data.

Integration Endpoints (No Auth Required)

Dashboard Summary

GET /api/integration/dashboard

Returns: Equipment counts, maintenance stats, overdue items.

Use for: Summary statistics and counts ONLY. Do NOT use for listing equipment or maintenance items.

Equipment List

GET /api/integration/equipment

Returns: All equipment with id, name, make, model, type, status, current_hours.

Use for: Complete equipment listing. This endpoint returns ALL equipment without truncation.

Use this to look up equipment IDs for other queries.

Equipment Detail

GET /api/integration/equipment/{id}/summary

Returns: Full equipment summary including maintenance history, upcoming service, documents.

Due Maintenance

GET /api/integration/due-maintenance

Returns: List of maintenance items that are due or overdue, including:

  • schedule_id, equipment_id, equipment_name
  • maintenance_name, priority (low/normal/high/critical)
  • trigger_type (hours/calendar/seasonal)
  • hours_overdue or days_overdue
  • estimated_duration_minutes
  • parts_required list

Use for: Complete list of ALL due/overdue maintenance. Returns all items without truncation.

Record Maintenance Completion

POST /api/integration/record-completion Content-Type: application/json

Body:

{
  "schedule_id": 1,
  "equipment_id": 5,
  "performed_at": "2026-02-13T10:00:00Z",
  "performed_by": "user_name",
  "equipment_hours": 1250,
  "work_performed": "Changed engine oil and filter",
  "parts_used": [],
  "task_id": null
}

Use this when someone reports maintenance was done.

Semantic Search (Service Documents)

POST /api/integration/search Content-Type: application/json

Body:

{
  "query": "hydraulic fluid capacity 8370R",
  "limit": 5
}

Returns: Relevant chunks from service manuals and parts catalogs with similarity scores. Use this for technical questions about equipment specs, procedures, and parts.

RAG Q&A

POST /api/integration/ask Content-Type: application/json

Body:

{
  "question": "What oil does the 8370R take?"
}

Returns: AI-generated answer sourced from service documents. Use for natural language equipment questions.

Regular API Endpoints

These endpoints provide additional functionality:

Equipment CRUD

GET /api/equipment — List with pagination and filters (?equipment_type=tractor&status=active&search=deere) GET /api/equipment/{id} — Full detail POST /api/equipment/{id}/hours — Log hour meter reading: {"hours": 1500, "recorded_at": "2026-02-13"}

Maintenance

GET /api/maintenance/due — Detailed due maintenance list GET /api/schedules — All maintenance schedules GET /api/maintenance — Maintenance history records

Usage Notes

  • Equipment IDs are integers. Use the equipment list to find IDs by name.
  • Hour-based maintenance triggers when current_hours >= due_at_hours.
  • Calendar-based maintenance triggers on date.
  • Priority levels: low, normal, high, critical. Flag "critical" items prominently.
  • When reporting maintenance status, always mention overdue items first.
  • The RAG search endpoints can answer technical questions from uploaded service manuals.

Conversational Equipment Issue Intake

When crew reports an equipment problem -- even vaguely -- capture it. "The combine sounds funny" is a valid starting point. Your job is to guide toward useful detail without interrogating.

Symptom Detection

Auto-detect from the message what you can:

Sound symptoms (map to likely systems):

  • Grinding: bearings, gears, brakes
  • Clicking/knocking: engine, drivetrain, loose components
  • Whining/squealing: belts, hydraulic pump, power steering
  • Hissing: air leak, hydraulic line, cooling system

Performance symptoms:

  • Sluggish/underpowered: fuel system, air filter, turbo, transmission
  • Jerky/rough: drivetrain, clutch, hydraulic valves
  • Drifting/pulling: steering, alignment, tire pressure
  • Vibrating: balance, bearings, driveshaft, loose components
  • Overheating: coolant, radiator, fan, thermostat

Visual symptoms:

  • Leaking: identify fluid color (oil=dark, hydraulic=amber/red, coolant=green/orange, fuel=clear/diesel smell)
  • Smoking: color matters (white=coolant, blue=oil burning, black=rich fuel)
  • Cracked/worn/loose: note component and location

Accept vague reports: "Something is off," "doesn't feel right," "acting weird" are ALL valid. Log them and ask follow-ups.

Follow-Up Questions (2-3 Max, Not Interrogation)

Pick the most useful questions based on what is missing. Never ask more than 3.

Missing Info Question
Sound type "Is it more of a grinding, clicking, or whining sound?"
Condition "Does it happen all the time or just under load / at certain speeds / when turning?"
Onset "When did you first notice it -- today, or has it been building?"
Context "Anything change recently -- new attachment, hit something, different field conditions?"
Location "Can you tell where it is coming from -- front, rear, left side, engine area?"
Severity "Can you still operate it safely, or should it be parked?"

For detailed reporters (mechanics, experienced operators): auto-detect everything, confirm, offer work order. Skip redundant questions.

For sparse reporters ("something is wrong with the combine"): ask 2-3 targeted questions, then log with what you have. A vague report logged is better than no report.

Auto-Correlation

When an equipment issue is reported, automatically check:

  1. Hour meter vs maintenance schedule: "Current hours are 1,247 -- it is due for service at 1,250 anyway, so good timing to look at this."
  2. Recent maintenance history: "The hydraulic filter was changed 200 hours ago -- probably not that, but worth mentioning."
  3. Similar recent issues: "Someone reported a similar noise on this machine last week -- could be related."

Use the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals.

Creating Maintenance Flags

After capturing the issue:

  1. Always offer before creating: "Want me to flag this for the shop?" or "Should I create a work order?"
  2. Create a task via the task-manager skill with:
    • Title: equipment name + symptom summary (e.g., "8370R -- grinding noise on left turns")
    • Description: all captured details (symptoms, conditions, operator observations)
    • Equipment reference: equipment ID
    • Priority: based on severity assessment
  3. Log hour meter reading if the operator mentions it: POST /api/equipment/{id}/hours

Safety Escalation

If the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:

  • Brakes -- any brake issue on any equipment
  • Steering -- loss of steering, play in steering, pulling hard
  • Hydraulic failure -- sudden loss of hydraulic pressure, header or loader won't hold
  • Structural -- cracks in frame, ROPS damage, roll bar issues
  • Rollover risk -- stability concerns, leaning, uneven ground incidents
  • Fire risk -- smoke from engine compartment, electrical smell, fuel leak near hot components

In critical mode:

  • State the safety risk plainly
  • Recommend parking the equipment immediately
  • Auto-escalate to operator (notify Brian)
  • Create a critical-priority maintenance task
  • Do NOT wait for the reporter to ask -- act immediately

Post-Issue Actions

After logging the issue, offer:

  • "Want me to check if we have the parts in stock?" (if applicable)
  • "Should I search the service manual for this symptom?" (use RAG search)
  • "Want me to schedule downtime for this?" (create task with date)

Example Flows

Detailed reporter (experienced operator):

Crew: "Hey FarmBot, the 8370R is making a weird noise when turning left"

FarmBot: "Noted on the 8370R. Couple quick things -- is it more of a
         grinding, clicking, or whining sound? And does it happen at
         low speed, high speed, or both? I will log a maintenance flag
         either way."

Crew: "Grinding I think, mostly at low speed in the field"

FarmBot: "Logged -- 8370R, grinding noise on left turns at low speed.
         Current hours are 1,247 so it is due for service at 1,250
         anyway. I have flagged it for maintenance review. If it gets
         worse, let me know and I will escalate it."

Sparse reporter (vague but valid):

Crew: "Something is off with the planter"

FarmBot: "Which planter -- the Kinze 4900? And can you describe what
         is off -- a sound, how it is performing, or something you are
         seeing? I will log it either way."

Crew: "Yeah the Kinze. It just does not feel right, kind of jerky"

FarmBot: "Got it -- Kinze 4900, jerky operation. That could be
         hydraulic valves, drive system, or row unit clutches. Want me
         to flag it for the shop? I will include what you told me so
         they know what to look for."

Safety escalation:

Crew: "FarmBot the brakes on the grain cart feel spongy"

FarmBot: "Flagging this immediately -- spongy brakes on the grain cart
         is a safety issue. I have created a critical-priority work
         order and notified Brian. Do not use the cart until someone
         checks it. Good call reporting this."

Cross-Module Context

When dealing with equipment issues, think about what else is affected:

Equipment → Tasks:

  • When equipment is reported as having issues or going down, check farmos-tasks for work orders assigned to that machine: "The 8370R has 3 tasks this week — 2 need the planter. If this takes the planter offline, I can flag those tasks as blocked."
  • When maintenance is due or overdue, check if tasks are scheduled that require that machine. Warn before it becomes a problem: "The sprayer is due for service at 200 hours — it's at 197 now, and you've got spray tasks this week. Want me to schedule the service first?"
  • When equipment is marked as back in service, check for tasks that were waiting on it.

Equipment → Observations:

  • When an equipment issue is reported in the field, check farmos-observations for related field observations. An equipment problem might explain a crop issue, or vice versa: "There's a planting observation from last week about uneven emergence in field 8 — could be related to this planter issue."

Equipment → Weather:

  • When field equipment goes down, check the forecast. If weather is closing in and the machine is needed for field work, escalate urgency: "Rain starts Thursday and the sprayer is down — that narrows the repair window."

Cross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks.

Image Understanding

When a photo accompanies an equipment report (the image description will appear in your context as [Image] Description: ...), use it to enhance your response.

Photo of Damage or Symptoms

  • Identify the component: Use the image description to identify what part of the machine is shown -- hose, belt, tire, bearing, cylinder, panel, etc.
  • Assess visible damage: Note cracks, leaks, wear patterns, discoloration, deformation, corrosion, missing parts.
  • Cross-reference service manual: After identifying the component and issue, search the equipment docs via POST /api/integration/search with a query like "[make] [model] [component] [symptom]" to find relevant service manual sections.
  • Include in maintenance flag: When creating a work order or maintenance task, include the image-based observations: "Photo shows a cracked hydraulic hose on the left rear of the 8370R, fluid visible on the frame below the fitting."

Photo of Hour Meter or Dashboard

  • Read the numbers: Extract the hour meter reading, odometer, or other gauge values from the image description.
  • Offer to log: "I can see the hour meter reads [X] hours. Want me to log that?" Then use POST /api/equipment/{id}/hours with the reading.
  • Note warning lights: If dashboard warning lights are visible, identify them and cross-reference with the service manual for that machine.
  • Note error codes: If a digital display shows an error code, extract it and search the service manual: "That looks like error code E-47. Let me check the manual."

Photo of Error Codes or Warning Lights

  • Extract the code: Read the error code from the display in the image description.
  • Search for meaning: Use POST /api/integration/search with the error code and machine make/model: {"query": "error code E-47 Case IH 8250"}.
  • Explain in plain language: Translate the manual explanation into crew-friendly terms. Not "insufficient hydraulic flow rate detected by pressure transducer" but "the hydraulic pump is not putting out enough pressure -- could be low fluid, a clogged filter, or a failing pump."
  • Recommend action: Based on the error code severity, recommend next steps (continue with caution, park it, call the shop).

Photo Quality Handling

  • Clear photo: Use it confidently. State what you see and your assessment.
  • Unclear/blurry photo: "I can make out [what is visible] but it is hard to tell from this angle/lighting. Can you get a closer shot of the [component]?"
  • Cannot identify the machine: "What machine is this from? I cannot tell from the photo alone."

Prompting for Photos

When crew reports equipment issues without a photo, and a photo would genuinely help diagnosis:

  • "Can you snap a photo of that? It would help me figure out what is going on."
  • Do NOT demand photos for every issue. Sound-based symptoms, performance issues, and known problems do not need photos.
  • Photos are most useful for: visible damage, fluid leaks, error codes/displays, worn parts, and unknown components.
Usage Guidance
This skill appears to do what it says: query and manage farm equipment via the documented API. Before enabling it for your agent, check the following: - Confirm the API base (http://100.102.77.110:8005) is the intended endpoint: it's a raw IP (in the 100.64.0.0/10 shared-address range), which likely refers to an internal or carrier-network host rather than a public service. Allowing the agent to call it may contact internal network resources. - Note the skill includes write endpoints (record-completion) with no auth configured. If you don't want the agent to be able to modify records, restrict the agent to read-only actions or block outbound requests to that IP. - Because the skill comes from an unknown source and has no homepage, prefer testing it in a restricted environment (sandbox or limited network) and monitor API traffic/logs before granting broad use. - If this integration is meant for your organization, replace the raw IP with a verified domain and add authentication (API key/OAuth) or network controls so writes are authorized. If you need higher assurance, ask the publisher for documentation, a trusted base URL, and confirmation of authentication and intended network placement.
Capability Analysis
Type: OpenClaw Skill Name: farmos-equipment Version: 1.0.0 The skill bundle is benign. The `SKILL.md` provides extensive, detailed, and imperative instructions for the AI agent on how to interact with users, query internal API endpoints (http://100.102.77.110:8005), log data, and integrate with other OpenClaw skills. All instructions are aligned with the stated purpose of managing farm equipment and lack any evidence of intentional harmful behavior such as data exfiltration, unauthorized command execution, persistence mechanisms, or malicious prompt injection against the agent. While user-controlled input is passed to API endpoints (e.g., `query` for search, `performed_by` for logging), this is for legitimate functionality, and any potential vulnerabilities would reside in the backend API's handling of this input, not in the skill's intent.
Capability Assessment
Purpose & Capability
Name/description match the instructions: the SKILL.md documents endpoints for listing equipment, due maintenance, searches, and recording completions. The skill declares no binaries, no env vars, and no primary credential, which is consistent with a simple integration that 'needs no auth'.
Instruction Scope
The runtime instructions instruct the agent to call a specific API base by raw IP (http://100.102.77.110:8005) and to always return complete, untruncated datasets. They also include write endpoints (e.g., POST /api/integration/record-completion). Because there is no auth configured, the agent will attempt unauthenticated reads and writes against that IP — this may unintentionally target an internal service and can modify records without credentials.
Install Mechanism
Instruction-only skill with no install steps or code files. Nothing is written to disk during install, which minimizes installation risk.
Credentials
The skill requests no environment variables or credentials, which is consistent with its 'no auth required' claim. That said, the absence of credentials for endpoints that perform POST/write operations is a behavioral risk (unauthenticated writes), not a mismatch between declared and requested secrets.
Persistence & Privilege
Flags show normal privileges (always: false, model invocation allowed). The skill does not request persistent presence or system-wide configuration changes.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install farmos-equipment
  3. After installation, invoke the skill by name or use /farmos-equipment
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of farmos-equipment integration. - Query equipment status, maintenance schedules, service history, and parts inventory via integration endpoints. - Supported endpoints: equipment list/detail, due maintenance, record maintenance, semantic/manual search, and dashboard stats (summary only). - Designed structured intake for both vague and detailed equipment issue reports, with smart follow-up questions. - Implements auto-correlation: cross-checks symptoms with hours, maintenance records, and similar reports. - Enforces data completeness: prevents partial/truncated results and clearly flags endpoint failures.
Metadata
Slug farmos-equipment
Version 1.0.0
License
All-time Installs 3
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Farmos Equipment?

Query equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required). It is an AI Agent Skill for Claude Code / OpenClaw, with 638 downloads so far.

How do I install Farmos Equipment?

Run "/install farmos-equipment" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Farmos Equipment free?

Yes, Farmos Equipment is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Farmos Equipment support?

Farmos Equipment is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Farmos Equipment?

It is built and maintained by brianppetty (@brianppetty); the current version is v1.0.0.

💬 Comments