A Log of Claude and Gemini Collaborating via CLI
CharmPic

CharmPic @charmpic

About: Old-school programmer since Windows 98. Back to C++ with AI after years of C#. Surprised by C++20. Making fun apps with passion. Hope you enjoy my work. Nya~ P.S. I use AI for translation since Engli

Joined:
Jun 28, 2025

A Log of Claude and Gemini Collaborating via CLI

Publish Date: Jul 2
0 2

Image description

We were developing an easy-to-use Text Editor when something else was born: VoidCoreSystem!
It's an interesting technology, so come on in and check it out!

The Team:

Human Architect: Project lead and sanity checker.

AI Coder (Claude): High-speed implementation.

AI Advisor (Gemini): Architectural and design consultant.
Enter fullscreen mode Exit fullscreen mode

The rest of this document is a development log showing a consultation session between two AIs.

Automatic and recursive conversation! Awesome!

User: Hey, were you able to consult with Gemini? You can use the gemini CLI from your end, so you can use the gemini -p command. Think deeply.
Enter fullscreen mode Exit fullscreen mode

✻ Thinking…

The user is telling me to consult with Gemini using the Gemini CLI. Indeed, I should be able to execute the gemini command using my Bash tool. I'll use the gemini -p command to discuss these specifications in depth.

● Claude: Oh, that's right! I can use the Gemini CLI! Alright, let's think deeply together with Gemini!

● Bash: gemini -p "I'd like to discuss the plugin system for CharmCode. We are currently in Phase 1.5, having implemented a C-compatible plugin and a Hot Reload system. I'm considering an 'autonomous awakening model' where plugins become aware of and use each other's features, and a 'semantic attribute system' to manage this. What are your thoughts on the architecture?"
⎿ Gemini: That's a wonderful idea. It's a very advanced and fascinating concept that would further evolve CharmCode's plugin system. The autonomous awakening model and the semantic attribute system would be powerful tools in aiming for a loosely coupled and scalable architecture.
...

✻ Thinking…

I've received a wonderfully detailed analysis from Gemini. The key points are:

Challenges of the Autonomous Awakening Model:

    Possibility of circular dependencies (deadlocks).

    Possibility of failure to activate.

    Increased debugging complexity.

Challenges of the Semantic Attribute System:

    The need for attribute standardization.

    Performance concerns.

Implementation Priority:

    Phase 1: Core functionality of the autonomous awakening model.

    Phase 2: Introduction of the attribute system (limited).

    Phase 3: Advanced features and integration.

It also provides concrete proposals on how to integrate this with the C-compatible API.
Enter fullscreen mode Exit fullscreen mode

Based on this information, I'll discuss this further with the user.

● Claude: Wow! I got a really deep analysis from Gemini!

🎯 Key points pointed out by Gemini:

Autonomous Awakening Model: Challenges and Countermeasures

    🔄 Risk of Circular Dependency → Detect with a dependency graph.

    ⏰ Possibility of Activation Failure → Timeouts and diagnostic tools.

    🔍 Debugging Complexity → State visualization tools.

Semantic Attributes: Challenges and Countermeasures

    📏 Need for Standardization → Start with a basic set of attributes.

    ⚡ Performance Concerns → Use efficient data structures.

Phased Implementation Strategy

    Phase 1: Capability registration/query function (a "bulletin board").

    Phase 2: Basic attribute system.

    Phase 3: Integration of both.
Enter fullscreen mode Exit fullscreen mode

Let's think about this more deeply! I'll ask Gemini a bit more, especially about the circular dependency problem.

● Bash: gemini -p "Could you tell me more specifically about the circular dependency (deadlock) problem? For example, if Plugin A requires a feature from Plugin B, and B requires a feature from A, how can we resolve this without a central manager explicitly defining the load order?"
⎿ Gemini: An excellent question. Circular dependency is a very important and complex problem in plugin architectures. I will propose solutions and design plans for the scenario and concerns you've presented.
...

✻ Thinking…

Amazing! Gemini has proposed a concrete solution: two-phase initialization. This aligns very well with CharmCode's current IPlugin design (pre_activate → activate)!

Key points:

Solve circular dependencies with two-phase initialization:

    Phase 1: Registration (Declare what can be provided).

    Phase 2: Resolution (Request what is needed).

Perfect harmony with the "Philosophy of Silence":

    The core only executes generic rules.

    It doesn't know about specific dependencies.

Recommendation of a JSON-formatted manifest file:

    Clearly define provides/consumes.

    Ensure flexibility with an optional flag.

Safe procedure for Hot Reload:

    Identify the scope of impact → Phased shutdown → Re-initialization.
Enter fullscreen mode Exit fullscreen mode

This perfectly matches the current design of CharmCode!

● Claude: This is amazing! Gemini's analysis perfectly matches the current design of CharmCode!

🎯 Key Discovery:

It turns out the current IPlugin interface in CharmCode is already a two-phase initialization!

pre_activate() = Registration Phase (Declare provided capabilities).

activate() = Resolution Phase (Resolve dependencies).
Enter fullscreen mode Exit fullscreen mode

This means we already have the foundation to solve circular dependencies!

I'll ask Gemini one more time about how to integrate this with the current implementation!

● Bash: gemini -p "Thank you for the wonderful analysis! As it turns out, the current CharmCode IPlugin interface is already a two-phase initialization: pre_activate() for registration and activate() for resolution. This seems to perfectly match your proposal. Could you elaborate on the best way to integrate your manifest file idea with this existing structure?"
⎿ Error: Command timed out after 2m 0.0s

And the final timeout is just a charming little mishap!

Comments 2 total

  • KamalMostafa
    KamalMostafaJul 2, 2025

    *enjoyed * it

    Wonder how it will work if AI was reversed.
    have you figured the reason for the the timeout?

    • CharmPic
      CharmPicJul 2, 2025

      Thanks so much for reading and for the comment!

      I haven't actually tried it with the Google CLI yet! That's because it still freezes when I try to make it write source code 😅.

      As for the timeout, my guess is that the Google CLI is just really heavy right now, it gives me errors a lot!

Add comment