Building an AGLC-to-Zotero Converter with Kimi K2: Why Specialisation Beats General AI for Legal Citations

If you’re an Australian law academic or student who manages research in citation management software like Zotero, you know the drill. You have a bibliography beautifully formatted according to the Australian Guide to Legal Citation (4th ed), but now you need to import those references into your Zotero library. Maybe you’re new to citation management software or didn’t think you needed it, but the next best journal for your article uses a different citation style

The problem? There is no easy way to get this information from a bibliography into your Zotero library. You end up manually copying case names, legislation titles, and journal articles field-by-field into your reference manager. It’s tedious, error-prone work that somehow feels beneath the dignity of modern legal research.*

I went searching for a better way. I found a handful of web apps promising to convert formatted citations into reference manager formats, like RIS. There’s even a decent one floating around on ChatGPT. But every single tool I tried shared the same fatal flaw: they were built for general citation styles—APA, MLA, Chicago—not for the precise, idiosyncratic world of the Australian Guide to Legal Citation. When I fed them an AGLC-formatted bibliography, they stumbled. Cases became journal articles. Legislation turned into journal articles. The output was a mess and would not be much better than manual entry.

That’s when I realised the problem wasn’t the AI; it was the training data. These tools were taught to recognise patterns in general citations, but AGLC4 CSL style in Zotero requires certain information to be added in specific fields for it to be rendered correctly. A citation like Donoghue v Stevenson [1932] AC 562 isn’t just a string of text—it’s a formula: [Case Name] [Year] [Volume] Law Report [First Page]. If your AI doesn’t understand that grammar, it can’t parse it correctly.

Teaching Kimi to Speak Legal Citation

This insight coincided with my first serious exploration of Kimi, specifically the K2 model with its new ‘OK Computer’ functionality. I’d dabbled before, but this was the first time I entrusted an entire project to Kimi’s ecosystem. My goal was straightforward: create a web app that could take an AGLC-formatted bibliography and convert it into a clean RIS file for seamless Zotero import.

The key difference? I didn’t just ask Kimi to ‘build a citation converter.’ I fed it AGLC4 samples—actual cases, legislation, journal articles, and books formatted precisely to render AGLC correct citations. This was my attempt at an exact field mapping that Zotero’s RIS format expects for legal references.

In effect, I taught Kimi the semantics of AGLC, not just the syntax. The OK Computer interface made this iterative training process surprisingly intuitive. I could paste AGLC samples, test outputs, refine instructions, and rebuild the application logic in a single, flowing conversation. The interface feels familiar—much like chatting with other LLM chatbots—but I noticed something refreshing: the free tier didn’t gasp for breath when my context window grew or when I hit what would have been rate limits elsewhere.

The Free Tier That Actually Lets You Build

Here’s where I need to give credit where it’s due. This entire project—the initial concept, the parsing logic, the web interface design, the debugging of edge cases, the deployment—was accomplished on Kimi’s Free Tier. All of it.

I could be mistaken but had I used ChatGPT’s free tier, I fear I would have hit message caps or context limits before achieving something production-ready. Claude’s free tier would have similarly throttled the rapid iteration cycles this kind of project demands. Kimi didn’t. I could maintain the full context of our conversation, refer back to previous decisions, and continue refining without that subtle pressure of ‘you’re running out of free requests.’

Is Kimi K2 a wholesale replacement for Claude or ChatGPT? It’s too early for me to make that call. For general writing tasks or creative brainstorming, the differences are probably marginal. But for this specific use case—building a nuanced, browser tool with some iterative training—the cost-performance ratio is genuinely impressive. When you’re paying nothing but getting the context window and patience to teach an AI a specialist skill, that’s pretty good value.

What the App Actually Does

The web app itself is simple by design. You paste your AGLC bibliography into the input field, click ‘Convert to RIS’. Then ‘copy to clipboard’ in the web app and in Zotero simply ‘import from clipboard’. Behind that simplicity is a parsing engine that’s learned the specific patterns of Australian legal citation:

  • Cases: It correctly identifies case names and maps year, reporter, starting page etc to the proper RIS field so Zotero renders them with AGLC precision.
  • Legislation: It recognises jurisdiction, year and legislation or bill name, formatting them exactly as the style guide demands.
  • Journal Articles: It handles author name formatting, journal title, and volume/issue.
  • Books: It parses author, title, publisher, and year into their respective fields, preserving the content for italicisation of publication titles.

The result is a RIS file that, when imported into Zotero with the AGLC CSL style installed, produces references that look like they were hand-crafted by a pedantic law librarian – well, almost.

A Work in Progress

This is a starting point, not a finished product. The current version handles the most common AGLC item types—cases, legislation, journal articles, and books. But AGLC4 is comprehensive, covering everything from treaties to Hansard to social media posts. I need your help to expand it.

Try it out. Convert your bibliographies. Import them into Zotero. If a particular citation type isn’t rendering correctly—or if you encounter an edge case I haven’t anticipated—send me the example. I’ll retrain the model, update the application, and push improvements live. This is how we build tools that actually serve the Australian legal research community: through collaboration and iteration.

The era of general-purpose AI is exciting, but sometimes the real magic happens when you take a capable model and teach it to master something specific. For me, Kimi K2 proved to be the right tool at the right price point (free!) to solve a niche problem properly. Whether Kimi can displace the incumbents for everyday tasks remains to be seen, but for specialised projects like this? The results speak for themselves.

Let me know if you find this useful or if you discover a particular item type that isn’t rendering correctly. Send me an example, and I’ll update the application.

* The fine print: You will still need to create new footnote references using Zotero, which will help keep your dignity as modern legal researcher in check! I recommend keeping it as AGLC initially, just to ensure that all the content has rendered correctly before converting the citation style to Blue Book or whatever house style is required.

A Better Way to Manage Legal Citations in Obsidian: Combining Zotero with AGLC Formatting

Legal writing in Australia demands precise citation following the Australian Guide to Legal Citation (AGLC). While Obsidian is an excellent tool for legal writing and research, managing citations properly can be challenging. After considerable experimentation, I’ve discovered a workflow that combines the power of Obsidian with Zotero’s citation management, while maintaining proper AGLC formatting including ‘ibid’ and subsequent ‘n’ references.

The standard approach of using Zotero’s Obsidian plugin has a significant limitation: while it can insert AGLC-formatted citations, these remain static. This means you lose the dynamic features of legal citation such as automatic ‘ibid’ references and correct numbering for subsequent citations. However, there’s a solution that preserves these essential features while maintaining the benefits of both Obsidian and Zotero.

This workflow uses Obsidian’s Longform plugin for document management, Zotero’s scannable cite format for reference tracking, and LibreOffice for final AGLC formatting. Here’s how to implement it:

First, set up your environment. Install Obsidian’s Longform plugin for managing your document structure, and configure Zotero’s export preferences. In Zotero, go to Export/Item format and select ‘Scannable cite’. This setting enables Zotero to create citations that can be processed later for proper AGLC formatting.

When writing your document, add footnotes using markdown or the Footnote plugin (Option + 8 on Mac) to create citation references. Here’s the crucial part that many (including myself, initially) miss: each footnote reference must be unique throughout your entire document. Instead of using simple numbered references like [^1], create meaningful, unique identifiers. For example:

This point is supported by recent research.[^lit-1]
Further studies have confirmed this trend.[^lit-2]

[^lit-1]: { | Smith, 2023 |p. 55 | |zu:2006667:ABCD123}
[^lit-2]: { | Smith, 2023 |p. 56 | |zu:2006667:ABCD123}

To insert the Scannable Cite from Zotero, copy them from Zotero (Shift + Cmd + C) and paste them into your footnotes. The seeming complexity of the citation format doesn’t matter—it’s just temporary scaffolding that will be converted later.

When your document is complete, use the Longform plugin to compile it. Then, export the compiled markdown to ODT format using Obsidian’s Enhanced Export plugin. This creates a document that preserves your citation structure while being compatible with Zotero’s processing tools.

The final step transforms these scannable citations into properly formatted AGLC references. Use the RTF/ODF-Scan for Zotero tool to process your exported document. Open the processed document (it will have “citation” in the filename) in LibreOffice. In the Zotero LibreOffice plugin toolbar, click Set Document Preferences, choose AGLC as your citation style, and click OK. Zotero will automatically format all references according to AGLC guidelines, including proper use of ‘ibid’ and correct ‘n’ citations.

This workflow solves several common problems in legal writing. It maintains the flexibility of Obsidian for writing and organisation, preserves Zotero’s powerful reference management capabilities, and ensures proper AGLC formatting including dynamic citation features. While it might seem complex at first, the process becomes quite smooth with practice and delivers significantly better results than simpler but more limited approaches.

Remember: the key to success with this method is ensuring every footnote reference in your Obsidian document is unique. This small detail makes the difference between a smooth conversion process and frustrating formatting errors later.

Are you a #futureready lawyer based in Queensland?

Whether you own or are employed in a sole, micro, small or medium-sized law practice in Queensland, please spend a few minutes to complete this survey and help guide the future.

I am involved with this research, commissioned by Queensland Law Society (QLS) and being undertaken by the University of Southern Queensland and The University of Queensland which will provide recommendations to enable QLS to most appropriately respond to the future needs of your practice.

Please share through your networks.

Time-management for Academics: My experience with SkedPal App

On Monday, I attended an inspiring training day at the University of Southern Queensland, run by the Office for the Advancement of Learning and Teaching. I came away with a head full of ideas on how to improve my courses and to teach generally. One small idea I look forward to trialling is setting up a formative quiz at the beginning of the semester to gauge students’ starting level of knowledge. This also has the ancillary benefit of encouraging students to engage with Moodle early in the topic. I’ll report on the results!

A colleague and I were asked to share our task management/planning strategies with the group. I’ve been using SkedPal for the last six months or so, and I think it offers some unique and powerful features that are particularly useful for academics, which I shared with the group.

SkedPal combines task management/to-do lists with your calendar. Once you link your Outlook or Google calendar, your tasks are scheduled around your calendar appointments. This is great for people who do not want to rely on their willpower or spend time throughout their day deciding what to do next — its already been cleverly scheduled for you! You estimate how long a task will take and SkedPal finds a gap in your calendar. But where SkedPal sets itself apart from other time management/to-do apps is through its use of ‘time maps’.

Time maps allow the user to designate blocks of time to certain tasks throughout their week. Every task is allocated to one or more time maps. For example, one of my time maps is called ‘writing’, and this covers Monday through to Friday, from 9-11am. Any tasks assigned to this ’time map’ will be scheduled for that period. Here is a look at my ‘writing’ time map.

You can also specify times when it would be less desirable to work on this set of tasks, but you are willing to do it. I find this particularly useful for when I have multiple deadlines (marking, teaching, publishing) and my work hours are extended. Below is my default ‘work’ time map. This shows that most tasks will be scheduled from 11-6:30 pm, with a break for lunch. The orange time blocks are where tasks can be scheduled if they need to be. I also have an early morning time map if I need it.

I am in the final stages of completing my PhD, so anything related to my thesis is assigned to my writing time map. This means every day I know I have at least 2 hours I spend on my thesis. If there is not enough room for a particular task to be scheduled on a given day, then it will be scheduled to another day where there is a gap in my calendar. You can ensure a task is completed today by setting the due date as today. Giving it a ‘high priority’ flag will also promote this task over non-flagged tasks.

You might be concerned that having a calendar full all the time will make it hard for colleagues to schedule appointments. But there is a setting that allows all SkedPal tasks to appear as either ‘busy’ or ‘available’.

Other features include:

  • You can automatically schedule a time buffer between tasks. Either as a fixed figure or as a percentage of the duration of the task, which is great in case something takes you longer than expected. If things go off the rails (e.g. unexpected meeting), you can always click reschedule and SkedPal will replan your day, based on your priorities, due dates and time maps.
  • You can always click and drag tasks to manual reschedule them and they remain ‘pinned’ to that time even when you click reschedule.
  • It is possible to partially complete large tasks, which may get split-up throughout your day (although you can specify the minimum block length, i.e. you don’t want to spend less than 1 hour or 30 minutes on a larger task). When you partially complete a task, when you reschedule your day the 1-hour’s work you completed on a 3-hour task is not ignored.

If you are struggling to find more time to write, I encourage you to consider SkedPal. They are currently offering a 14-day free trial, so you can try it risk-free and see if it works for you. It is available on Mac, Windows, Linux, iOS and Google Play. SkedPal is cloud-based, so all your apps sync in real time as well!

If you have any questions about how I use SkedPal, post them below. Likewise, I would like to hear what works for you. Do you use a lot of time maps or only a few?

Productivity Apps in Academia – An Introduction

I have been a sessional academic since 2014. During this time I’ve been completing my Doctoral thesis and being actively involved in several animal protection groups in various capacities.

I am also fairly lazy (just ask my partner, Aimee).

So doing things as efficiently as possible has been a long-standing interest of mine, even before returning to university. One of my goals in starting this blog is to share with you some of the more useful apps that you may like to integrate into your teaching/researching so you can spend more time researching, writing and otherwise having a life outside of academia.

I don’t claim to be some productivity guru. I am not. I have lost days being painfully unproductive. What I do know, is that I am generally more productive than ever before and this is due, in part, to the software I use.

We live in the golden age of apps. App development for Mac and iOS has become a lot simpler since the introduction of Swift, Apple Inc’s open source programming software, in 2014. Since then, it seems like everyone has turned their hand to app development. I have even been tempted to develop a few app ideas I have, but that is for another post.

As a starting point, I should outline the apps that I currently use. In subsequent posts, I will explain why I have chosen one app over the other and how it can benefit those working in academia. I hope to hear from some of you regarding other apps I may have overlooked.

In BETA but still my task management app of choice. More on this later.
For emails. Excellent new integration with Evernote.
As a repository for everything.
I have snippets for emails and marking work.
For custom keyboard shortcuts for common and repetitive tasks such as inserting a footnote into Scrivener.
For web-based articles I come across but don’t have time (or the inclination) to read now.
My word processor of choice for long-form documents, especially when using the Australian Legal Guide to Citation in footnotes. So much much stable than MS Word.
Citation software for the Australian Guide to Legal Citation and digital repository for all academic sources.
For accessing and annotating my digital academic library on the go.
For digitising hard-copy book chapters/ articles.
For OCR’ing scanned documents.
For tracking the time taken on specific tasks. Especially valuable when I need to submit timesheets for marking or research assistant work.