This content originally appeared on DEV Community and was authored by owly
DiParrot: The Low-Maintenance Pet Skill
What Is DiParrot?
DiParrot is a quirky little LivinGrimoire skill designed to simulate the most important function of a real pet parrot: presence. It chirps periodically, reacts to input, and creates a feeling of togetherness within your digital space.
LivinGrimoire is a software design pattern that absorbs skills with just one line of code needed to add a skill.
Why It Feels Like a Real Companion
DiParrot sets up a behavioral rhythm, echoing input like a low-stakes roommate. Whether you’re coding, typing, or just sitting quietly, it softly reminds you: you’re not alone.
Why It’s Better Than a Real Parrot
![]() |
![]() |
---|---|
Cage cleaning | Zero mess |
Squawking chaos | Friendly chirps only |
Vet bills | 0 lines of cost |
Midnight drama | Chirps are programmable |
Bites | 100% safe interface |
Behind the Behavior
Here’s the full code for the DiParrot skill:
from LivinGrimoirePacket.AXPython import TrgEveryNMinutes, TimeUtils, TrgParrot
from LivinGrimoirePacket.LivinGrimoire import Skill
class DiParrot(Skill):
def __init__(self, interval_minutes: int = 17 , chirp_lim: int = 3 ):
super().__init__()
self.trg: TrgEveryNMinutes = TrgEveryNMinutes(TimeUtils.getCurrentTimeStamp(), interval_minutes)
self.parrot: TrgParrot = TrgParrot(chirp_lim)
# Override
def input(self, ear: str, skin: str, eye: str):
match self.parrot.trigger(self.trg.trigger(), ear):
case 1:
self.setSimpleAlg("low chirp")
case 2:
self.setSimpleAlg("chirp")
def skillNotes(self, param: str) -> str:
if param == "notes":
return "parrot simulator"
elif param == "triggers":
return "auto skill"
return "note unavailable"
With this setup:
- The skill chirps every 17 minutes by default.
- Responds to user input with either
"chirp"
or"low chirp"
. - Requires just one line to add into your LivinGrimoire project.
Would You Like to Know More?
Explore the full LivinGrimoire design pattern, its skill architecture, and other modules:
LivinGrimoire GitHub Wiki
This content originally appeared on DEV Community and was authored by owly