Skip to content

[General] # Issue #847

@JohnDuncanScott

Description

@JohnDuncanScott

Mood: 😔
Category: General

Issue

Copilot is token inefficient with requests.

Settings

Model settings: GPT 5.4 mini, Medium thinking.
Input: test x 2 (each in a separate session)
Expected: Acknowledged or whatever. It's never 100% consistent, but it is quick and short.
No global instructions set (which obviously use token).
Skills all disabled (which also use tokens for the reference loading).
This usage is coming from whatever base prompts are injected per request.
I cannot see the exact token using in Copilot, but I can see my credits being used up.

OpenCode

This harness uses about 9K tokens per request which mostly come from the system prompts the user cannot change.

For further context, I primary use OpenCode and have done so for many months. It works solidly with the Copilot subscription and I do not have coding issues. I am therefore happy with whatever it requires to have high success rates (although I wish it used less)

Usage

Test request x 2 = 1 credit
This is reproducible.

Copilot desktop app

Starting testing this out. Since you moved to token based usage, I wanted to see what the difference was.

Usage

Test request x 2 = 3-4 credits
This is reproducible.

As stated above, I cannot measure exact token counts but I can see my credits

Summary

Copilot uses 3 to 4x the credits that OpenCode does. I was really hoping you guys had put lots of effort into cost efficiency and you'd beat an opensource harness. That is not the case.

Until this is fixed, this issue is an adoption blocker. There are no advantages to using Copilot desktop app over OpenCode, therefore cost efficiency or allowing a user to tweak your hidden system prompts to allow more customisation is a must-have feature.

Related data

opencode.jsonc

{
  "$schema": "https://opencode.ai/config.json",
  // Prevent accidentally sharing code on a remote edge server
  "share": "disabled",
  // OpenCode is in beta
  "autoupdate": false,
  // Global permissions - ensure all agents and sub-agents play safely
  "permission": {
    "bash": {
      // Default: always prompt for ANY shell command
      "*": "ask",
      // Remote-damaging Git operations
      "git push": "deny",
      "git push *": "deny",
      // Changing remotes can enable accidental pushes to the wrong place
      "git remote add *": "deny",
      "git remote remove *": "deny",
      "git remote set-url *": "deny",
      // Local destructive operations
      "git clean -f*": "deny",
      "git clean -x*": "deny",
      "git clean *-f*": "deny", // catches reordered flags
      "git reset --hard": "deny",
      "git reset --hard *": "deny",
      // Directory removal
      "rm -rf*": "deny",
      "rm -fr*": "deny",
      "rm -r *": "deny",
      "rm --recursive*": "deny",
      "rmdir *": "deny",
      // Repo hosting CLIs (if installed)
      "gh repo delete*": "deny",
      "glab repo delete*": "deny",
      // Safe commonly requested commands
      "dotnet *": "allow",
      "git diff *": "allow",
      "git log *": "allow",
      "git ls-files *": "allow",
      "git status *": "allow",
      "javap *": "allow",
      "ls *": "allow",
      "mkdir *": "allow",
      "mvn *": "allow",
      "npm *": "allow",
      "wc *": "allow"
    },
    "external_directory": "ask",
    // An agent can ask sub-agents with broader permissions to do work on their behalf
    "task": {
      "*": "ask",
      // Explore is read-only so safe to allow
      "explore": "allow",
      "general": "ask"
    },
    "skill": "deny",
    "lsp": "deny"
  },
  // Agent-specific overrides (agent rules take precedence)
  "agent": {
    // Prevent Plan agent from doing anything potentially dangerous at all
    "plan": {
      "permission": {
        "bash": "deny",
        "edit": "deny"
      }
    }
  }
}

Field Value
App version 0.2.27
OS Windows 10.0.26200
Theme GitHub
Path /chat
Tenure Day 3 (Week 1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions