Metadata-Version: 2.4
Name: always-attend
Version: 0.2.0a0
Summary: Agent-first CLI for inspecting, matching, and submitting attendance codes.
Author: bunizao
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/bunizao/always-attend
Project-URL: Repository, https://github.com/bunizao/always-attend
Project-URL: Issues, https://github.com/bunizao/always-attend/issues
Keywords: attendance,automation,agent,playwright,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: playwright>=1.54.0
Requires-Dist: pyotp==2.9.0
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: browsercookie>=0.8.2
Requires-Dist: rich>=13.0.0
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == "dev"
Requires-Dist: twine>=6.1.0; extra == "dev"
Dynamic: license-file

# Always-Attend

> *The following is excerpted from a reflection I wrote in my FIT1045 H3 report.*

---

I've been developing Always-Attend for two months now. There are already more than 150 commits, and the project has grown from a small 500-line script into something I'm genuinely proud of. Today it has over 30 Python files and around 6,000 lines of code. Modern, elegant, and useful — something I believe many people would enjoy.

Along the way, AI helped me move faster. Codex and Claude Code set up test frameworks, caught bugs, and iterated alongside me. But the thinking was always mine — the architecture, the decisions, the refactoring over details no one would ever notice.

Then ChatGPT Atlas launched. I watched it find the attendance code in Gmail, open a GitHub issue, and fill the form — all on its own. For a moment, I thought: *Always-Attend doesn't matter anymore.* It felt like every startup story I'd heard, quietly replaced by something shinier and better-funded.

I kept building anyway. Not to compete, but to finish what I started.

Somewhere in that process, the project stopped being just a tool. It became a record of how I think — my curiosity, my patience, and the slow satisfaction of watching something come alive line by line.

---

That was then. Now, Always-Attend is leaning into what once felt like a threat. The next chapter is agentic — less scripting, more thinking. Less automation, more autonomy. The tool that once felt obsolete is still figuring out what it wants to be when it grows up.

---

> *This project is a work in progress. Contributions and feedback are welcome.*
