AutomationView offers an integrated AI assistant (in Beta) to assist with sequence design, diagnostics, and documentation, while maintaining full compatibility with your favorite external coding assistants.
The editor integrates a contextual AI chat panel connected directly to your active project.
The AutomationView AI assistant supports local and cloud-based inference models:
| Provider | Runtime Mode | Description |
|---|---|---|
| Ollama | Local / On-premise | Secure, private, and free of API fees (default: http://localhost:11434) |
| OpenRouter | Cloud multi-model | Unified access to multiple LLMs via an API key |
| OpenAI | Cloud | Direct integration with GPT models |
| Anthropic | Cloud | Direct integration with Claude models |
| Gemini | Cloud | Direct integration with Gemini models |
To configure the AI assistant:
automationview.ai.showSetupMenu).| Setting | Type | Default | Description |
|---|---|---|---|
automationview.ai.enabled |
boolean | false |
Enable the AI assistant (Chat and completions) |
automationview.ai.provider |
string | ollama |
Selected provider (ollama, openrouter, openai, anthropic, gemini) |
automationview.ai.model |
string | llama3 |
Target model name |
automationview.ai.endpoint |
string | http://localhost:11434 |
Local API endpoint URL |
automationview.ai.apiKey |
string | "" |
Authentication API key for cloud providers |
When enabled, the AI Chat view (automationview.chatView) appears in the AutomationView sidebar.
AutomationView stores sequences in Python files (.seq) and machine configurations in Python (.machine). Because these are open, human-readable text files on disk, any external coding assistant (such as Claude Code, Cursor, or GitHub Copilot) can read and edit your project directly.
project/
main.machine
Sequence_1.seq
Sequence_2.seq
| Extension | Role | Base Class |
|---|---|---|
.seq |
Sequential logic definition | Sequence |
.machine |
Machine configuration and I/O | Machine |
When writing or generating code, apply the following standard signatures:
from automation_machine import Sequence, StepType
from automation_machine import ActionQualifier
from automation_machine import ActionInstruction
from automation_machine import ActionOperand
from automation_machine import Machine
self.s0 = self.add_step(StepType.INITIAL, name="0", comment="Home position")
self.s1 = self.add_step(name="1", comment="Extend cylinder")
self.s1.add_action("cylinder_extend", description="Extend cylinder")
self.s2.add_action("vacuum", qualifier=ActionQualifier.S)
self.s3.add_action("T_Confirm", instruction=ActionInstruction.TON, duration=500)
self.s6.add_action("vacuum", qualifier=ActionQualifier.R)
Boolean conditions use standard operators (logical ., +, / or AND, OR, NOT):
self.add_transition(self.s0, self.s1, "start . /emergency_stop", comment="Start cycle")
self.add_transition(self.s1, self.s2, "cyl_fwd . /cyl_bwd")
self.add_transition(self.s3, self.s4, "T_Confirm.q")
self.add_transition(self.s5, self.s6, "Conveyor.X3")
self.t_count = self.add_transition(self.s4, self.s0, "/part_present . /counter1.q")
self.t_count.add_action("counter1", qualifier=ActionQualifier.P, instruction=ActionInstruction.CTU, preset_value=3)
from automation_machine import Machine
class ProjectMachine(Machine):
def __init__(self):
super().__init__()
self.name = "Plant Project"
self.version = "1.0.0"
def setup(self):
self.add_instance("Verin", "station_1")
self.add_instance("Verin", "station_2")
N qualifier is standard for continuous physical actuators.S and R for memory flags and non-hazardous internal logic states.cyl_fwd . /cyl_bwd).